diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml
new file mode 100644
index 0000000000..3407dc7fd8
--- /dev/null
+++ b/.github/workflows/check_translations.yaml
@@ -0,0 +1,37 @@
+name: Check Translations
+
+on:
+  push:
+    branches:
+      - l10
+  pull_request:
+    branches:
+      - l10
+
+jobs:
+
+  check:
+    runs-on: ubuntu-latest
+
+    env:
+      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      INVENTREE_DB_NAME: './test_db.sqlite'
+      INVENTREE_DB_ENGINE: django.db.backends.sqlite3
+      INVENTREE_DEBUG: info
+      INVENTREE_MEDIA_ROOT: ./media
+      INVENTREE_STATIC_ROOT: ./static
+
+
+    steps:
+      - name: Checkout Code
+        uses: actions/checkout@v2
+      - name: Install Dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install gettext
+          pip3 install invoke
+          invoke install
+      - name: Test Translations 
+        run: invoke translate
+      - name: Check Migration Files
+        run: python3 ci/check_migration_files.py
diff --git a/InvenTree/InvenTree/models.py b/InvenTree/InvenTree/models.py
index 0f8350f84f..0448a69781 100644
--- a/InvenTree/InvenTree/models.py
+++ b/InvenTree/InvenTree/models.py
@@ -21,7 +21,8 @@ from django.dispatch import receiver
 from mptt.models import MPTTModel, TreeForeignKey
 from mptt.exceptions import InvalidMove
 
-from .validators import validate_tree_name
+from InvenTree.fields import InvenTreeURLField
+from InvenTree.validators import validate_tree_name
 
 
 logger = logging.getLogger('inventree')
@@ -89,12 +90,15 @@ class ReferenceIndexingMixin(models.Model):
 class InvenTreeAttachment(models.Model):
     """ Provides an abstracted class for managing file attachments.
 
+    An attachment can be either an uploaded file, or an external URL
+
     Attributes:
         attachment: File
         comment: String descriptor for the attachment
         user: User associated with file upload
         upload_date: Date the file was uploaded
     """
+
     def getSubdir(self):
         """
         Return the subdirectory under which attachments should be stored.
@@ -103,11 +107,32 @@ class InvenTreeAttachment(models.Model):
 
         return "attachments"
 
+    def save(self, *args, **kwargs):
+        # Either 'attachment' or 'link' must be specified!
+        if not self.attachment and not self.link:
+            raise ValidationError({
+                'attachment': _('Missing file'),
+                'link': _('Missing external link'),
+            })
+
+        super().save(*args, **kwargs)
+
     def __str__(self):
-        return os.path.basename(self.attachment.name)
+        if self.attachment is not None:
+            return os.path.basename(self.attachment.name)
+        else:
+            return str(self.link)
 
     attachment = models.FileField(upload_to=rename_attachment, verbose_name=_('Attachment'),
-                                  help_text=_('Select file to attach'))
+                                  help_text=_('Select file to attach'),
+                                  blank=True, null=True
+                                  )
+
+    link = InvenTreeURLField(
+        blank=True, null=True,
+        verbose_name=_('Link'),
+        help_text=_('Link to external URL')
+    )
 
     comment = models.CharField(blank=True, max_length=100, verbose_name=_('Comment'), help_text=_('File comment'))
 
@@ -123,7 +148,10 @@ class InvenTreeAttachment(models.Model):
 
     @property
     def basename(self):
-        return os.path.basename(self.attachment.name)
+        if self.attachment:
+            return os.path.basename(self.attachment.name)
+        else:
+            return None
 
     @basename.setter
     def basename(self, fn):
diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py
index 90cc857cdd..3785cfb292 100644
--- a/InvenTree/InvenTree/serializers.py
+++ b/InvenTree/InvenTree/serializers.py
@@ -239,22 +239,6 @@ class InvenTreeModelSerializer(serializers.ModelSerializer):
         return data
 
 
-class InvenTreeAttachmentSerializer(InvenTreeModelSerializer):
-    """
-    Special case of an InvenTreeModelSerializer, which handles an "attachment" model.
-
-    The only real addition here is that we support "renaming" of the attachment file.
-    """
-
-    # The 'filename' field must be present in the serializer
-    filename = serializers.CharField(
-        label=_('Filename'),
-        required=False,
-        source='basename',
-        allow_blank=False,
-    )
-
-
 class InvenTreeAttachmentSerializerField(serializers.FileField):
     """
     Override the DRF native FileField serializer,
@@ -284,6 +268,27 @@ class InvenTreeAttachmentSerializerField(serializers.FileField):
         return os.path.join(str(settings.MEDIA_URL), str(value))
 
 
+class InvenTreeAttachmentSerializer(InvenTreeModelSerializer):
+    """
+    Special case of an InvenTreeModelSerializer, which handles an "attachment" model.
+
+    The only real addition here is that we support "renaming" of the attachment file.
+    """
+
+    attachment = InvenTreeAttachmentSerializerField(
+        required=False,
+        allow_null=False,
+    )
+
+    # The 'filename' field must be present in the serializer
+    filename = serializers.CharField(
+        label=_('Filename'),
+        required=False,
+        source='basename',
+        allow_blank=False,
+    )
+
+
 class InvenTreeImageSerializerField(serializers.ImageField):
     """
     Custom image serializer.
diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py
index bf9a3bfaac..7647ee41ef 100644
--- a/InvenTree/InvenTree/settings.py
+++ b/InvenTree/InvenTree/settings.py
@@ -26,6 +26,7 @@ import moneyed
 import yaml
 from django.utils.translation import gettext_lazy as _
 from django.contrib.messages import constants as messages
+import django.conf.locale
 
 
 def _is_true(x):
@@ -698,6 +699,25 @@ LANGUAGES = [
     ('zh-cn', _('Chinese')),
 ]
 
+# Testing interface translations
+if get_setting('TEST_TRANSLATIONS', False):
+    # Set default language
+    LANGUAGE_CODE = 'xx'
+
+    # Add to language catalog
+    LANGUAGES.append(('xx', 'Test'))
+
+    # Add custom languages not provided by Django
+    EXTRA_LANG_INFO = {
+        'xx': {
+            'code': 'xx',
+            'name': 'Test',
+            'name_local': 'Test'
+        },
+    }
+    LANG_INFO = dict(django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
+    django.conf.locale.LANG_INFO = LANG_INFO
+
 # Currencies available for use
 CURRENCIES = CONFIG.get(
     'currencies',
diff --git a/InvenTree/build/migrations/0033_auto_20211128_0151.py b/InvenTree/build/migrations/0033_auto_20211128_0151.py
new file mode 100644
index 0000000000..db8df848ce
--- /dev/null
+++ b/InvenTree/build/migrations/0033_auto_20211128_0151.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.2.5 on 2021-11-28 01:51
+
+import InvenTree.fields
+import InvenTree.models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('build', '0032_auto_20211014_0632'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='buildorderattachment',
+            name='link',
+            field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'),
+        ),
+        migrations.AlterField(
+            model_name='buildorderattachment',
+            name='attachment',
+            field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'),
+        ),
+    ]
diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py
index 4d3680ea98..35a3bb3baa 100644
--- a/InvenTree/build/serializers.py
+++ b/InvenTree/build/serializers.py
@@ -16,7 +16,7 @@ from rest_framework import serializers
 from rest_framework.serializers import ValidationError
 
 from InvenTree.serializers import InvenTreeModelSerializer, InvenTreeAttachmentSerializer
-from InvenTree.serializers import InvenTreeAttachmentSerializerField, UserSerializerBrief
+from InvenTree.serializers import UserSerializerBrief
 
 import InvenTree.helpers
 from InvenTree.serializers import InvenTreeDecimalField
@@ -516,8 +516,6 @@ class BuildAttachmentSerializer(InvenTreeAttachmentSerializer):
     Serializer for a BuildAttachment
     """
 
-    attachment = InvenTreeAttachmentSerializerField(required=True)
-
     class Meta:
         model = BuildOrderAttachment
 
@@ -525,6 +523,7 @@ class BuildAttachmentSerializer(InvenTreeAttachmentSerializer):
             'pk',
             'build',
             'attachment',
+            'link',
             'filename',
             'comment',
             'upload_date',
diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html
index 31e9f38080..8479c2819f 100644
--- a/InvenTree/build/templates/build/detail.html
+++ b/InvenTree/build/templates/build/detail.html
@@ -431,53 +431,17 @@ enableDragAndDrop(
     }
 );
 
-// Callback for creating a new attachment
-$('#new-attachment').click(function() {
-
-    constructForm('{% url "api-build-attachment-list" %}', {
-        fields: {
-            attachment: {},
-            comment: {},
-            build: {
-                value: {{ build.pk }},
-                hidden: true,
-            }
-        },
-        method: 'POST',
-        onSuccess: reloadAttachmentTable,
-        title: '{% trans "Add Attachment" %}',
-    });
-});
-
-loadAttachmentTable(
-    '{% url "api-build-attachment-list" %}',
-    {
-        filters: {
-            build: {{ build.pk }},
-        },
-        onEdit: function(pk) {
-            var url = `/api/build/attachment/${pk}/`;
-
-            constructForm(url, {
-                fields: {
-                    filename: {},
-                    comment: {},
-                },
-                onSuccess: reloadAttachmentTable,
-                title: '{% trans "Edit Attachment" %}',
-            });
-        },
-        onDelete: function(pk) {
-
-            constructForm(`/api/build/attachment/${pk}/`, {
-                method: 'DELETE',
-                confirmMessage: '{% trans "Confirm Delete Operation" %}',
-                title: '{% trans "Delete Attachment" %}',
-                onSuccess: reloadAttachmentTable,
-            });
+loadAttachmentTable('{% url "api-build-attachment-list" %}', {
+    filters: {
+        build: {{ build.pk }},
+    },
+    fields: {
+        build: {
+            value: {{ build.pk }},
+            hidden: true,
         }
     }
-);
+});
 
 $('#edit-notes').click(function() {
     constructForm('{% url "api-build-detail" build.pk %}', {
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 9fe47d1626..3259a2f959 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: German\n"
 "Language: de_DE\n"
@@ -70,17 +70,15 @@ msgstr "Kategorie auswählen"
 
 #: InvenTree/forms.py:230
 msgid "Email (again)"
-msgstr ""
+msgstr "E-Mail (nochmal)"
 
 #: InvenTree/forms.py:234
-#, fuzzy
-#| msgid "Edit order information"
 msgid "Email address confirmation"
-msgstr "Bestellung bearbeiten"
+msgstr "Bestätigung der E-Mail Adresse"
 
 #: InvenTree/forms.py:254
 msgid "You must type the same email each time."
-msgstr ""
+msgstr "E-Mail Adressen müssen übereinstimmen."
 
 #: InvenTree/helpers.py:430
 #, python-brace-format
@@ -134,7 +132,7 @@ msgstr "Datei-Kommentar"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Benutzer"
@@ -175,8 +173,9 @@ msgstr "Ungültige Auswahl"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Name"
@@ -187,18 +186,19 @@ msgstr "Name"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -218,83 +218,83 @@ msgstr "Muss eine gültige Nummer sein"
 msgid "Filename"
 msgstr "Dateiname"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Deutsch"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Griechisch"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Englisch"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Spanisch"
 
-#: InvenTree/settings.py:667
-msgid "Spanish (Mexican)"
-msgstr ""
-
 #: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr "Spanisch (Mexikanisch)"
+
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Französisch"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Hebräisch"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Italienisch"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Japanisch"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Koreanisch"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Niederländisch"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Norwegisch"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polnisch"
 
-#: InvenTree/settings.py:676
-msgid "Portugese"
-msgstr ""
-
 #: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr "Portugiesisch"
+
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Russisch"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Schwedisch"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Thailändisch"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Türkisch"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Vietnamesisch"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Chinesisch"
 
@@ -365,15 +365,15 @@ msgstr "Zurückgewiesen"
 
 #: InvenTree/status_codes.py:269
 msgid "Legacy stock tracking entry"
-msgstr "Alter Lagerbestands-Tracking-Eintrag"
+msgstr "Alter Bestand-Verfolgungs-Eintrag"
 
 #: InvenTree/status_codes.py:271
 msgid "Stock item created"
-msgstr "Lagerbestand erstellt"
+msgstr "Lagerartikel erstellt"
 
 #: InvenTree/status_codes.py:273
 msgid "Edited stock item"
-msgstr "Lagerbestand bearbeitet"
+msgstr "Lagerartikel bearbeitet"
 
 #: InvenTree/status_codes.py:274
 msgid "Assigned serial number"
@@ -381,15 +381,15 @@ msgstr "Seriennummer hinzugefügt"
 
 #: InvenTree/status_codes.py:276
 msgid "Stock counted"
-msgstr "Lagerbestand gezählt"
+msgstr "Bestand gezählt"
 
 #: InvenTree/status_codes.py:277
 msgid "Stock manually added"
-msgstr "Lagerbestand manuell hinzugefügt"
+msgstr "Bestand manuell hinzugefügt"
 
 #: InvenTree/status_codes.py:278
 msgid "Stock manually removed"
-msgstr "Lagerbestand manuell entfernt"
+msgstr "Bestand manuell entfernt"
 
 #: InvenTree/status_codes.py:280
 msgid "Location changed"
@@ -419,7 +419,7 @@ msgstr "Vom übergeordneten Element geteilt"
 msgid "Split child item"
 msgstr "Unterobjekt geteilt"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Zum Kunden geschickt"
 
@@ -517,15 +517,15 @@ msgstr "Treffer für Barcode gefunden"
 
 #: barcodes/api.py:153
 msgid "Must provide stockitem parameter"
-msgstr "BestandsObjekt-Parameter muss angegeben werden"
+msgstr "Lagerartikel-Parameter muss angegeben werden"
 
 #: barcodes/api.py:160
 msgid "No matching stock item found"
-msgstr "Keine passende BestandsObjekt gefunden"
+msgstr "Keine passende Lagerartikel gefunden"
 
 #: barcodes/api.py:190
 msgid "Barcode already matches StockItem object"
-msgstr "Barcode entspricht bereits BestandsObjekt"
+msgstr "Barcode entspricht bereits einem Lagerartikel"
 
 #: barcodes/api.py:194
 msgid "Barcode already matches StockLocation object"
@@ -537,11 +537,11 @@ msgstr "Barcode entspricht bereits Teil"
 
 #: barcodes/api.py:204 barcodes/api.py:216
 msgid "Barcode hash already matches StockItem object"
-msgstr "Barcode ist bereits BestandsObjekt zugeordnet"
+msgstr "Barcode ist bereits Lagerartikel zugeordnet"
 
 #: barcodes/api.py:222
 msgid "Barcode associated with StockItem"
-msgstr "Barcode zugeordnet zu BestandsObjekt"
+msgstr "Barcode Lagerartikel zugeordnet"
 
 #: build/forms.py:36 build/models.py:1283
 #: build/templates/build/build_base.html:124
@@ -549,19 +549,18 @@ msgstr "Barcode zugeordnet zu BestandsObjekt"
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -569,8 +568,8 @@ msgstr "Barcode zugeordnet zu BestandsObjekt"
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Anzahl"
@@ -623,8 +622,10 @@ msgstr "Bauauftrag"
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr "Bauaufträge"
 
@@ -637,7 +638,7 @@ msgstr "Bauauftragsreferenz"
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr "Referenz"
@@ -661,7 +662,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -671,15 +672,15 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "Teil"
 
@@ -717,7 +718,7 @@ msgstr "Bau-Anzahl"
 
 #: build/models.py:267
 msgid "Number of stock items to build"
-msgstr "Anzahl der zu bauenden BestandsObjekt"
+msgstr "Anzahl der zu bauenden Lagerartikel"
 
 #: build/models.py:271
 msgid "Completed items"
@@ -725,7 +726,7 @@ msgstr "Fertiggestellte Teile"
 
 #: build/models.py:273
 msgid "Number of stock items which have been completed"
-msgstr "Anzahl der fertigen BestandsObjekte"
+msgstr "Anzahl der fertigen Lagerartikel"
 
 #: build/models.py:277 part/templates/part/part_base.html:216
 msgid "Build Status"
@@ -798,16 +799,23 @@ msgstr "Externer Link"
 msgid "Link to external URL"
 msgstr "Link zu einer externen URL"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "Notizen"
 
@@ -834,7 +842,7 @@ msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete
 #: build/models.py:1117
 #, python-brace-format
 msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
-msgstr ""
+msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
 
 #: build/models.py:1127
 msgid "Stock item is over-allocated"
@@ -850,7 +858,7 @@ msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
 
 #: build/models.py:1193
 msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
 
 #: build/models.py:1253 stock/templates/stock/item_base.html:318
 #: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
@@ -871,15 +879,15 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
 #: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
 #: templates/js/translated/stock.js:1990
 msgid "Stock Item"
-msgstr "BestandsObjekt"
+msgstr "Lagerartikel"
 
 #: build/models.py:1271
 msgid "Source stock item"
-msgstr "Quell-BestandsObjekt"
+msgstr "Quell-Lagerartikel"
 
 #: build/models.py:1284
 msgid "Stock quantity to allocate to build"
-msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
+msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
 
 #: build/models.py:1292
 msgid "Install into"
@@ -887,35 +895,27 @@ msgstr "Installiere in"
 
 #: build/models.py:1293
 msgid "Destination stock item"
-msgstr "Ziel-BestandsObjekt"
+msgstr "Ziel-Lagerartikel"
 
 #: build/serializers.py:137 build/serializers.py:357
 msgid "Build Output"
 msgstr "Endprodukt"
 
 #: build/serializers.py:146
-#, fuzzy
-#| msgid "Build output does not match build"
 msgid "Build output does not match the parent build"
-msgstr "Endprodukt stimmt nicht mit Bauauftrag überein"
+msgstr ""
 
 #: build/serializers.py:150
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Output part does not match BuildOrder part"
-msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
+msgstr ""
 
 #: build/serializers.py:154
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output has already been completed"
-msgstr "Endprodukt bereits hergstellt"
+msgstr ""
 
 #: build/serializers.py:158
-#, fuzzy
-#| msgid "This Sales Order has not been fully allocated"
 msgid "This build output is not fully allocated"
-msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
+msgstr ""
 
 #: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
 #: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
@@ -924,17 +924,15 @@ msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr "Lagerort"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Lagerort der Endprodukte"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -947,10 +945,8 @@ msgid "Status"
 msgstr "Status"
 
 #: build/serializers.py:213
-#, fuzzy
-#| msgid "A list of stock items must be provided"
 msgid "A list of build outputs must be provided"
-msgstr "Eine Liste der Lagerbestände muss angegeben werden"
+msgstr ""
 
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
@@ -958,16 +954,12 @@ msgid "BOM Item"
 msgstr "Stücklisten-Position"
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build Output"
 msgid "Build output"
 msgstr "Endprodukt"
 
 #: build/serializers.py:278
-#, fuzzy
-#| msgid "Build output does not match build"
 msgid "Build output must point to the same build"
-msgstr "Endprodukt stimmt nicht mit Bauauftrag überein"
+msgstr ""
 
 #: build/serializers.py:319
 msgid "bom_item.part must point to the same part as the build order"
@@ -1000,10 +992,8 @@ msgid "Allocation items must be provided"
 msgstr ""
 
 #: build/tasks.py:92
-#, fuzzy
-#| msgid "Required for Build Orders"
 msgid "Stock required for build order"
-msgstr "Für Bauaufträge benötigt"
+msgstr "Bestand für Bauauftrag erforderlich"
 
 #: build/templates/build/build_base.html:39
 #: order/templates/order/order_base.html:28
@@ -1012,10 +1002,8 @@ msgid "Print actions"
 msgstr "Aktionen drucken"
 
 #: build/templates/build/build_base.html:43
-#, fuzzy
-#| msgid "Print Order Reports"
 msgid "Print build order report"
-msgstr "Berichte drucken"
+msgstr "Bauauftragsbericht drucken"
 
 #: build/templates/build/build_base.html:50
 msgid "Build actions"
@@ -1064,7 +1052,7 @@ msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
 
 #: build/templates/build/build_base.html:108
 msgid "Stock has not been fully allocated to this Build Order"
-msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
+msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
 
 #: build/templates/build/build_base.html:138
 #: build/templates/build/detail.html:132
@@ -1087,16 +1075,16 @@ msgstr "Bauauftrag war fällig am %(target)s"
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr "Überfällig"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr "Fertig"
 
@@ -1192,16 +1180,14 @@ msgid "Destination location not specified"
 msgstr "Ziel-Lagerort nicht angegeben"
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
-#, fuzzy
-#| msgid "Related Parts"
 msgid "Allocated Parts"
-msgstr "Verknüpfte Teile"
+msgstr "Zugewiesene Teile"
 
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr "Losnummer"
 
@@ -1220,13 +1206,13 @@ msgstr "Kein Ziel-Datum gesetzt"
 msgid "Build not complete"
 msgstr "Bauauftrag ist nicht vollständig"
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr "Unter-Bauaufträge"
 
 #: build/templates/build/detail.html:173
 msgid "Allocate Stock to Build"
-msgstr "Lagerbestand Bauauftrag zuweisen"
+msgstr "Bestand Bauauftrag zuweisen"
 
 #: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
 msgid "Unallocate stock"
@@ -1238,11 +1224,11 @@ msgstr "Bestandszuordnung aufheben"
 
 #: build/templates/build/detail.html:180
 msgid "Allocate stock to build"
-msgstr "Lagerbestand Bauauftrag zuweisen"
+msgstr "Bestand Bauauftrag zuweisen"
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
-msgstr "Lagerbestand zuweisen"
+msgstr "Bestand zuweisen"
 
 #: build/templates/build/detail.html:184
 msgid "Order required parts"
@@ -1257,15 +1243,15 @@ msgstr "Teile bestellen"
 
 #: build/templates/build/detail.html:197
 msgid "Untracked stock has been fully allocated for this Build Order"
-msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag vollständig zugewiesen"
+msgstr "Nicht verfolgter Bestand wurde Bauauftrag vollständig zugewiesen"
 
 #: build/templates/build/detail.html:201
 msgid "Untracked stock has not been fully allocated for this Build Order"
-msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
+msgstr "Nicht verfolgter Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
 
 #: build/templates/build/detail.html:208
 msgid "Allocate selected items"
-msgstr ""
+msgstr "Ausgewählte Positionen zuweisen"
 
 #: build/templates/build/detail.html:218
 msgid "This Build Order does not have any associated untracked BOM items"
@@ -1280,37 +1266,33 @@ msgid "Create new build output"
 msgstr "Neues Endprodukt anlegen"
 
 #: build/templates/build/detail.html:232
-#, fuzzy
-#| msgid "Build Output"
 msgid "New Build Output"
-msgstr "Endprodukt"
+msgstr "Neues Endprodukt"
 
 #: build/templates/build/detail.html:246
-#, fuzzy
-#| msgid "Actions"
 msgid "Output Actions"
-msgstr "Aktionen"
+msgstr "Endproduktaktionen"
 
 #: build/templates/build/detail.html:250
-#, fuzzy
-#| msgid "Delete selected items"
 msgid "Complete selected items"
-msgstr "Ausgewählte Positionen löschen"
+msgstr "Ausgewählte Positionen abschließen"
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Incomplete Outputs"
 msgid "Complete outputs"
-msgstr "Unfertige Endprodukte"
+msgstr "Endprodukte fertigstellen"
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr "Fertiggestellte Endprodukte"
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "Anhänge"
 
@@ -1331,32 +1313,36 @@ msgid "Edit Notes"
 msgstr "Anmerkungen bearbeiten"
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr "Anhang hinzufügen"
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr "Anhang bearbeiten"
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr "Löschvorgang bestätigen"
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr "Anhang löschen"
 
@@ -1366,9 +1352,9 @@ msgstr "Zuordnung abgeschlossen"
 
 #: build/templates/build/detail.html:514
 msgid "All untracked stock items have been allocated"
-msgstr ""
+msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen"
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr "Neuer Bauauftrag"
 
@@ -1388,6 +1374,18 @@ msgstr "Kalender-Ansicht"
 msgid "Display list view"
 msgstr "Listen-Ansicht"
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr "Bauauftrag wurde abgebrochen"
@@ -1498,10 +1496,8 @@ msgid "Must be an integer value"
 msgstr "Nur Ganzzahl eingeben"
 
 #: common/models.py:382
-#, fuzzy
-#| msgid "Barcode does not match a valid location"
 msgid "Chosen value is not a valid option"
-msgstr "Barcode entspricht keinem Lagerort"
+msgstr "Wert ist keine gültige Option"
 
 #: common/models.py:405
 msgid "Value must be a boolean value"
@@ -1516,20 +1512,16 @@ msgid "Key string must be unique"
 msgstr "Schlüsseltext muss eindeutig sein"
 
 #: common/models.py:559
-#, fuzzy
-#| msgid "Group"
 msgid "No group"
-msgstr "Gruppe"
+msgstr "Keine Gruppe"
 
 #: common/models.py:601
-#, fuzzy
-#| msgid "Required"
 msgid "Restart required"
-msgstr "Benötigt"
+msgstr "Neustart erforderlich"
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
-msgstr ""
+msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert"
 
 #: common/models.py:609
 msgid "InvenTree Instance Name"
@@ -1579,7 +1571,7 @@ msgstr "Von URL herunterladen"
 msgid "Allow download of remote images and files from external URL"
 msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr "Bacode-Feature verwenden"
 
@@ -1645,7 +1637,7 @@ msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr "Vorlage"
 
@@ -1653,9 +1645,9 @@ msgstr "Vorlage"
 msgid "Parts are templates by default"
 msgstr "Teile sind standardmäßig Vorlagen"
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr "Baugruppe"
 
@@ -1664,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr "Komponente"
 
@@ -1681,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr "Artikel sind grundsätzlich kaufbar"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr "Verkäuflich"
 
@@ -1691,8 +1683,8 @@ msgstr "Artikel sind grundsätzlich verkaufbar"
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr "Nachverfolgbar"
 
@@ -1728,11 +1720,11 @@ msgstr "Teilpreis in einigen Formularen anzeigen"
 
 #: common/models.py:771
 msgid "Show Price in BOM"
-msgstr ""
+msgstr "Preis in Stückliste anzeigen"
 
 #: common/models.py:772
 msgid "Include pricing information in BOM tables"
-msgstr ""
+msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen"
 
 #: common/models.py:778
 msgid "Show related parts"
@@ -1768,23 +1760,19 @@ msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwe
 
 #: common/models.py:806
 msgid "Part Name Display Format"
-msgstr ""
+msgstr "Anzeigeformat für Teilenamen"
 
 #: common/models.py:807
 msgid "Format to display the part name"
-msgstr ""
+msgstr "Format für den Namen eines Teiles"
 
 #: common/models.py:814
-#, fuzzy
-#| msgid "Test Reports"
 msgid "Enable Reports"
-msgstr "Test-Berichte"
+msgstr "Berichte aktivieren"
 
 #: common/models.py:815
-#, fuzzy
-#| msgid "Enable generation of test reports"
 msgid "Enable generation of reports"
-msgstr "Erstellung von Test-Berichten aktivieren"
+msgstr "Berichterstellung aktivieren"
 
 #: common/models.py:821 templates/stats.html:25
 msgid "Debug Mode"
@@ -1896,95 +1884,83 @@ msgstr "Präfix für Bestellungs-Referenz"
 
 #: common/models.py:913
 msgid "Enable password forgot"
-msgstr ""
+msgstr "Passwort vergessen aktivieren"
 
 #: common/models.py:914
 msgid "Enable password forgot function on the login pages"
-msgstr ""
+msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
 
 #: common/models.py:919
 msgid "Enable registration"
-msgstr ""
+msgstr "Anmeldung erlauben"
 
 #: common/models.py:920
 msgid "Enable self-registration for users on the login pages"
-msgstr ""
+msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
 
 #: common/models.py:925
 msgid "Enable SSO"
-msgstr ""
+msgstr "SSO aktivieren"
 
 #: common/models.py:926
 msgid "Enable SSO on the login pages"
-msgstr ""
+msgstr "SSO auf den Anmeldeseiten aktivieren"
 
 #: common/models.py:931
-#, fuzzy
-#| msgid "Required"
 msgid "Email required"
-msgstr "Benötigt"
+msgstr "Email-Adresse erforderlich"
 
 #: common/models.py:932
 msgid "Require user to supply mail on signup"
-msgstr ""
+msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
 
 #: common/models.py:937
 msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "SSO-Benutzer automatisch ausfüllen"
 
 #: common/models.py:938
 msgid "Automatically fill out user-details from SSO account-data"
-msgstr ""
+msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
 
 #: common/models.py:943
 msgid "Mail twice"
-msgstr ""
+msgstr "E-Mail zweimal"
 
 #: common/models.py:944
 msgid "On signup ask users twice for their mail"
-msgstr ""
+msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
 
 #: common/models.py:949
 msgid "Password twice"
-msgstr ""
+msgstr "Passwort zweimal"
 
 #: common/models.py:950
 msgid "On signup ask users twice for their password"
-msgstr ""
+msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
 
 #: common/models.py:955
 msgid "Group on signup"
-msgstr ""
+msgstr "Gruppe bei Registrierung"
 
 #: common/models.py:956
-#, fuzzy
-#| msgid "Select which users are assigned to this group"
 msgid "Group to which new users are assigned on registration"
-msgstr "Welche Benutzer gehören zu dieser Gruppe"
+msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
 
 #: common/models.py:1001
-#, fuzzy
-#| msgid "Show starred parts"
 msgid "Show subscribed parts"
-msgstr "Markierte Teile anzeigen"
+msgstr "Abonnierte Teile anzeigen"
 
 #: common/models.py:1002
-#, fuzzy
-#| msgid "Show starred parts on the homepage"
 msgid "Show subscribed parts on the homepage"
-msgstr "Zeige markierte Teile auf der Startseite"
+msgstr "Abonnierte Teile auf der Startseite anzeigen"
 
 #: common/models.py:1007
-#, fuzzy
-#| msgid "Subcategories"
 msgid "Show subscribed categories"
-msgstr "Unter-Kategorien"
+msgstr "Abonnierte Kategorien anzeigen"
 
 #: common/models.py:1008
-#, fuzzy
-#| msgid "Show starred parts on the homepage"
 msgid "Show subscribed part categories on the homepage"
-msgstr "Zeige markierte Teile auf der Startseite"
+msgstr "Abonnierte Teilkategorien auf der Startseite anzeigen"
 
 #: common/models.py:1013
 msgid "Show latest parts"
@@ -2012,7 +1988,7 @@ msgstr ""
 
 #: common/models.py:1032
 msgid "Show recent stock changes"
-msgstr "Neueste Lagerbestand Änderungen anzeigen"
+msgstr "Neueste Bestandänderungen anzeigen"
 
 #: common/models.py:1033
 msgid "Show recently changed stock items on the homepage"
@@ -2032,7 +2008,7 @@ msgstr "Niedrigen Bestand anzeigen"
 
 #: common/models.py:1045
 msgid "Show low stock items on the homepage"
-msgstr "Zeige geringen Lagerbestand auf der Startseite"
+msgstr "Zeige geringen Bestand auf der Startseite"
 
 #: common/models.py:1050
 msgid "Show depleted stock"
@@ -2139,28 +2115,20 @@ msgid "Number of results to show in search preview window"
 msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
 
 #: common/models.py:1132
-#, fuzzy
-#| msgid "Show low stock"
 msgid "Search Show Stock"
-msgstr "Niedrigen Bestand anzeigen"
+msgstr "Suche Bestand anzeigen"
 
 #: common/models.py:1133
-#, fuzzy
-#| msgid "Number of results to show in search preview window"
 msgid "Display stock levels in search preview window"
-msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
+msgstr "Bestand in Suchvorschau anzeigen"
 
 #: common/models.py:1139
-#, fuzzy
-#| msgid "Show active parts"
 msgid "Hide Inactive Parts"
-msgstr "Aktive Teile anzeigen"
+msgstr "Inaktive Teile ausblenden"
 
 #: common/models.py:1140
-#, fuzzy
-#| msgid "Number of results to show in search preview window"
 msgid "Hide inactive parts in search preview window"
-msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
+msgstr "Inaktive Teile in der Suchvorschau ausblenden"
 
 #: common/models.py:1146
 msgid "Show Quantity in Forms"
@@ -2172,19 +2140,19 @@ msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
 
 #: common/models.py:1153
 msgid "Escape Key Closes Forms"
-msgstr ""
+msgstr "Esc-Taste schließt Formulare"
 
 #: common/models.py:1154
 msgid "Use the escape key to close modal forms"
-msgstr ""
+msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
 
 #: common/models.py:1160
 msgid "Fixed Navbar"
-msgstr ""
+msgstr "Fixierter Navigationsleiste"
 
 #: common/models.py:1161
 msgid "InvenTree navbar position is fixed to the top of the screen"
-msgstr ""
+msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren"
 
 #: common/models.py:1226 company/forms.py:43
 msgid "Price break quantity"
@@ -2192,7 +2160,7 @@ msgstr "Preisstaffelungs Anzahl"
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr "Preis"
 
@@ -2200,19 +2168,21 @@ msgstr "Preis"
 msgid "Unit price at specified quantity"
 msgstr "Stückpreis für die angegebene Anzahl"
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr "Datei hochgeladen"
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr "Übereinstimmende Felder"
 
@@ -2230,13 +2200,13 @@ msgstr "Teile importiert"
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr "Vorheriger Schritt"
 
@@ -2257,7 +2227,7 @@ msgid "Description of the company"
 msgstr "Firmenbeschreibung"
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr "Website"
 
@@ -2301,8 +2271,8 @@ msgstr "Anlaufstelle"
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr "Link"
 
@@ -2360,25 +2330,25 @@ msgstr "Teil auswählen"
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr "Hersteller"
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr "Hersteller auswählen"
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr "MPN"
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr "Hersteller-Teilenummer"
 
@@ -2402,9 +2372,9 @@ msgid "Parameter name"
 msgstr "Parametername"
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr "Wert"
 
@@ -2413,8 +2383,9 @@ msgid "Parameter value"
 msgstr "Parameterwert"
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr "Einheiten"
 
@@ -2424,30 +2395,30 @@ msgstr "Parametereinheit"
 
 #: company/models.py:502
 msgid "Linked manufacturer part must reference the same base part"
-msgstr ""
+msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
 
 #: company/models.py:545 company/templates/company/company_base.html:121
 #: company/templates/company/supplier_part.html:94 order/models.py:263
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr "Zulieferer"
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr "Zulieferer auswählen"
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr "SKU (Lagerbestandseinheit)"
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
 
@@ -2479,7 +2450,7 @@ msgstr "Mindestpreis"
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr "Verpackungen"
 
@@ -2505,7 +2476,7 @@ msgstr "Währungscode"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr "Firma"
 
@@ -2544,7 +2515,7 @@ msgstr "Telefon"
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr "Kunde"
@@ -2554,7 +2525,9 @@ msgstr "Kunde"
 msgid "Upload Image"
 msgstr "Bild hochladen"
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr "Zuliefererteile"
 
@@ -2565,7 +2538,7 @@ msgstr "Neues Zuliefererteil anlegen"
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr "Neues Zuliefererteil"
 
@@ -2573,8 +2546,8 @@ msgstr "Neues Zuliefererteil"
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr "Optionen"
 
@@ -2602,7 +2575,7 @@ msgstr "Herstellerteile"
 msgid "Create new manufacturer part"
 msgstr "Neues Herstellerteil anlegen"
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr "Neues Herstellerteil"
 
@@ -2611,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr "Zulieferer-Bestand"
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr "Bestellungen"
@@ -2631,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr "Neue Bestellung"
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr "Aufträge"
@@ -2661,13 +2639,13 @@ msgstr "Firmenbemerkungen"
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr "Zuliefererteil entfernen?"
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
 
@@ -2689,12 +2667,12 @@ msgid "Order part"
 msgstr "Teil bestellen"
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr "Herstellerteil bearbeiten"
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr "Herstellerteil löschen"
 
@@ -2705,27 +2683,29 @@ msgstr "Internes Teil"
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr "Zulieferer"
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr "Zuliefererteil entfernen"
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr "Löschen"
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr "Parameter"
 
@@ -2741,7 +2721,7 @@ msgid "Delete parameters"
 msgstr "Parameter löschen"
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr "Parameter hinzufügen"
 
@@ -2753,20 +2733,36 @@ msgstr "Ausgewählte Parameter werden gelöscht"
 msgid "Delete Parameters"
 msgstr "Parameter löschen"
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr "Zuliefererteil"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr "Zuliefererteil bearbeiten"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr "Zuliefererteil entfernen"
 
@@ -2777,16 +2773,14 @@ msgstr "Zulieferer-Bestand"
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Create new Stock Item"
 msgid "Create new stock item"
-msgstr "Neues BestandsObjekt hinzufügen"
+msgstr "Neuen Lagerartikel hinzufügen"
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
 #: templates/js/translated/stock.js:324
 msgid "New Stock Item"
-msgstr "Neues BestandsObjekt"
+msgstr "Neuer Lagerartikel"
 
 #: company/templates/company/supplier_part.html:155
 #: company/templates/company/supplier_part_navbar.html:19
@@ -2805,7 +2799,7 @@ msgstr "Preisinformationen ansehen"
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr "Preisstaffel hinzufügen"
 
@@ -2813,11 +2807,11 @@ msgstr "Preisstaffel hinzufügen"
 msgid "No price break information found"
 msgstr "Keine Informationen zur Preisstaffel gefunden"
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr "Preisstaffel löschen"
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr "Preisstaffel bearbeiten"
 
@@ -2830,27 +2824,42 @@ msgid "Delete price break"
 msgstr "Preisstaffel löschen"
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
-msgstr "Lagerbestand"
+msgstr "Bestand"
 
 #: company/templates/company/supplier_part_navbar.html:22
 msgid "Orders"
 msgstr "Bestellungen"
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr "Zuliefererteil Bepreisung"
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr "Bepreisung"
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Lagerartikel"
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr "Neuer Zulieferer"
@@ -2876,24 +2885,24 @@ msgstr "Firmen"
 msgid "New Company"
 msgstr "Neue Firma"
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr "Bild herunterladen"
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr "Ungültige Antwort {code}"
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr "Angegebene URL ist kein gültiges Bild"
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr "Keine korrekten Objekte für Vorlage gegeben"
 
@@ -2947,10 +2956,10 @@ msgstr "Muster für die Erstellung von Label-Dateinamen"
 
 #: label/models.py:258
 msgid "Query filters (comma-separated list of key=value pairs),"
-msgstr ""
+msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr "Filter"
 
@@ -2960,7 +2969,7 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
 
 #: label/models.py:365
 msgid "Part query filters (comma-separated value of key=value pairs)"
-msgstr ""
+msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
 
 #: order/forms.py:26 order/templates/order/order_base.html:52
 msgid "Place order"
@@ -2981,11 +2990,11 @@ msgstr "Bestellung versenden"
 
 #: order/forms.py:98
 msgid "Enter stock item serial numbers"
-msgstr "Seriennummern für BestandsObjekt eingeben"
+msgstr "Seriennummern für Lagerartikel eingeben"
 
 #: order/forms.py:104
 msgid "Enter quantity of stock items"
-msgstr "Menge der BestandsObjekt eingeben"
+msgstr "Menge der Lagerartikel eingeben"
 
 #: order/models.py:161
 msgid "Order description"
@@ -3157,15 +3166,15 @@ msgstr "Stückverkaufspreis"
 
 #: order/models.py:946 order/models.py:948
 msgid "Stock item has not been assigned"
-msgstr "BestandsObjekt wurde nicht zugewiesen"
+msgstr "Lagerartikel wurde nicht zugewiesen"
 
 #: order/models.py:952
 msgid "Cannot allocate stock item to a line with a different part"
-msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen"
+msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
 
 #: order/models.py:954
 msgid "Cannot allocate stock to a line without a part"
-msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
+msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
 
 #: order/models.py:957
 msgid "Allocation quantity cannot exceed stock quantity"
@@ -3173,11 +3182,11 @@ msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
 
 #: order/models.py:961
 msgid "StockItem is over-allocated"
-msgstr "Zu viele BestandsObjekt zugewiesen"
+msgstr "Zu viele Lagerartikel zugewiesen"
 
 #: order/models.py:967
 msgid "Quantity must be 1 for serialized stock item"
-msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
+msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
 
 #: order/models.py:975
 msgid "Line"
@@ -3189,7 +3198,7 @@ msgstr "Position"
 
 #: order/models.py:988
 msgid "Select stock item to allocate"
-msgstr "BestandsObjekt für Zuordnung auswählen"
+msgstr "Lagerartikel für Zuordnung auswählen"
 
 #: order/models.py:991
 msgid "Enter stock allocation quantity"
@@ -3233,7 +3242,7 @@ msgstr "Ziel-Lagerort muss angegeben werden"
 
 #: order/serializers.py:326
 msgid "Supplied barcode values must be unique"
-msgstr ""
+msgstr "Barcode muss eindeutig sein"
 
 #: order/serializers.py:568
 msgid "Sale price currency"
@@ -3245,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?"
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Print Order Reports"
 msgid "Print purchase order report"
-msgstr "Berichte drucken"
+msgstr "Bestellbericht drucken"
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3257,17 +3264,13 @@ msgstr "Exportiere Bestellung in Datei"
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Barcode actions"
 msgid "Order actions"
-msgstr "Barcode Aktionen"
+msgstr "Bestell-Aktionen"
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
-#, fuzzy
-#| msgid "Ship order"
 msgid "Edit order"
-msgstr "Bestellung versenden"
+msgstr "Auftrag bearbeiten"
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
@@ -3387,19 +3390,19 @@ msgstr "Zeile"
 msgid "Select Supplier Part"
 msgstr "Zulieferer-Teil auswählen"
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr "Datei zur Bestellung hochladen"
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr "Schritt %(step)s von %(count)s"
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden."
 
@@ -3460,6 +3463,42 @@ msgstr "Neue Bestellung für %(name)s anlegen"
 msgid "Select a purchase order for %(name)s"
 msgstr "Bestellung für %(name)s auswählen"
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr "Bestellungs-Anhänge"
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr "Bestellungs-Details"
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Details"
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr "Lagerartikel empfangen"
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr "Empfangene Teile"
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr "Positionen"
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr "Bestellungs-Positionen"
@@ -3479,10 +3518,6 @@ msgstr "Ausgewählte Positionen erhalten"
 msgid "Receive Items"
 msgstr "Teile empfangen"
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr "Empfangene Teile"
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3494,16 +3529,12 @@ msgid "Print Order Reports"
 msgstr "Berichte drucken"
 
 #: order/templates/order/sales_order_base.html:43
-#, fuzzy
-#| msgid "Print Order Reports"
 msgid "Print sales order report"
-msgstr "Berichte drucken"
+msgstr "Verkaufsauftragsbericht drucken"
 
 #: order/templates/order/sales_order_base.html:47
-#, fuzzy
-#| msgid "Packing List"
 msgid "Print packing list"
-msgstr "Packliste"
+msgstr "Paketliste drucken"
 
 #: order/templates/order/sales_order_base.html:66
 #: order/templates/order/sales_order_base.html:67 order/views.py:222
@@ -3692,7 +3723,7 @@ msgstr "Standard-Lagerort"
 
 #: part/bom.py:126 part/templates/part/part_base.html:167
 msgid "Available Stock"
-msgstr "Verfügbarer Lagerbestand"
+msgstr "Verfügbarer Bestand"
 
 #: part/forms.py:63
 msgid "File Format"
@@ -3774,23 +3805,19 @@ msgstr "kontrollieren"
 msgid "Confirm that the BOM is correct"
 msgstr "Bestätigen, dass die Stückliste korrekt ist"
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr "verknüpftes Teil"
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr "Teil-Kategorie wählen"
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr "Menge für die Preisberechnung"
 
@@ -3819,10 +3846,12 @@ msgstr "Teil-Kategorien"
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr "Teile"
 
@@ -3887,7 +3916,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr "Kategorie"
 
@@ -3896,7 +3925,8 @@ msgid "Part category"
 msgstr "Teile-Kategorie"
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr "IPN (Interne Produktnummer)"
 
@@ -3909,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr "Revisions- oder Versionsnummer"
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr "Revision"
 
@@ -3931,15 +3961,15 @@ msgstr "Standard Ablaufzeit"
 
 #: part/models.py:870
 msgid "Expiry time (in days) for stock items of this part"
-msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
+msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
 
 #: part/models.py:875 part/templates/part/part_base.html:178
 msgid "Minimum Stock"
-msgstr "Minimaler Lagerbestand"
+msgstr "Minimaler Bestand"
 
 #: part/models.py:876
 msgid "Minimum allowed stock level"
-msgstr "Minimal zulässiger Lagerbestand"
+msgstr "Minimal zulässiger Bestand"
 
 #: part/models.py:883
 msgid "Stock keeping units for this part"
@@ -3966,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr "Kann dieses Teil an Kunden verkauft werden?"
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr "Aktiv"
 
@@ -4016,7 +4046,7 @@ msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
 msgid "Test with this name already exists for this part"
 msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil"
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr "Test-Name"
@@ -4033,8 +4063,8 @@ msgstr "Test-Beschreibung"
 msgid "Enter description for this test"
 msgstr "Beschreibung für diesen Test eingeben"
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr "Benötigt"
 
@@ -4042,7 +4072,7 @@ msgstr "Benötigt"
 msgid "Is this test required to pass?"
 msgstr "Muss dieser Test erfolgreich sein?"
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr "Erfordert Wert"
 
@@ -4050,7 +4080,7 @@ msgstr "Erfordert Wert"
 msgid "Does this test require a value when adding a test result?"
 msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr "Anhang muss eingegeben werden"
 
@@ -4112,9 +4142,9 @@ msgstr "Teil für die Nutzung in der Stückliste auswählen"
 msgid "BOM quantity for this BOM item"
 msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr "Optional"
 
@@ -4146,10 +4176,10 @@ msgstr "Prüfsumme"
 msgid "BOM line checksum"
 msgstr "Prüfsumme der Stückliste"
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr "Geerbt"
 
@@ -4157,13 +4187,13 @@ msgstr "Geerbt"
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt"
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr "Varianten zulassen"
 
 #: part/models.py:2601
 msgid "Stock items for variant parts can be used for this BOM item"
-msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
+msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden"
 
 #: part/models.py:2686 stock/models.py:371
 msgid "Quantity must be integer value for trackable parts"
@@ -4174,26 +4204,20 @@ msgid "Sub part must be specified"
 msgstr "Zuliefererteil muss festgelegt sein"
 
 #: part/models.py:2826
-#, fuzzy
-#| msgid "BOM item notes"
 msgid "BOM Item Substitute"
-msgstr "Notizen zur Stücklisten-Position"
+msgstr "Stücklisten Ersatzteile"
 
 #: part/models.py:2848
 msgid "Substitute part cannot be the same as the master part"
-msgstr ""
+msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
 
 #: part/models.py:2860
-#, fuzzy
-#| msgid "Parent Item"
 msgid "Parent BOM item"
-msgstr "Elternposition"
+msgstr "Übergeordnete Stücklisten Position"
 
 #: part/models.py:2868
-#, fuzzy
-#| msgid "Sub part"
 msgid "Substitute part"
-msgstr "Untergeordnetes Teil"
+msgstr "Ersatzteil"
 
 #: part/models.py:2879
 msgid "Part 1"
@@ -4212,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "No stock location set"
 msgid "Low stock notification"
-msgstr "Kein Lagerort gesetzt"
+msgstr "Benachrichtigungen über geringen Bestand"
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4236,17 +4258,13 @@ msgstr "Die Stückliste für <em>%(part)s</em> wurde zuletzt von %(checker)s am
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr "Die Stückliste für <em>%(part)s</em> wurde noch nicht kontrolliert."
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
-#, fuzzy
-#| msgid "Build actions"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
-msgstr "Bau-Auftrag Aktionen"
+msgstr "Stücklisten-Aktionen"
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Element löschen"
+msgstr "Einträge löschen"
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4256,23 +4274,27 @@ msgstr "Dieses Teil hat bereits eine Stückliste"
 msgid "Select Part"
 msgstr "Teil auswählen"
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr "Stückliste hochladen"
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr "Anforderungen für Stückliste-Datei"
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr "Die Stückliste-Datei muss die aufgeführten Spalten enthalten; siehe"
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr "Vorlage für Stückliste"
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr "Jedes Teil muss bereits in der Datenbank bestehen"
 
@@ -4286,62 +4308,44 @@ msgid "This will validate each line in the BOM."
 msgstr "Damit wird jede Zeile der Stückliste kontrolliert"
 
 #: part/templates/part/category.html:24 part/templates/part/category.html:28
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "You are subscribed to notifications for this category"
-msgstr "Standard-Lagerort für Teile dieser Kategorie"
+msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert"
 
 #: part/templates/part/category.html:32
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "Subscribe to notifications for this category"
-msgstr "Standard-Lagerort für Teile dieser Kategorie"
+msgstr "Benachrichtigungen für diese Kategorie abonnieren"
 
 #: part/templates/part/category.html:38
-#, fuzzy
-#| msgid "Category Settings"
 msgid "Category Actions"
-msgstr "Kategorie-Einstellungen"
+msgstr "Kategorieaktionen"
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Edit part category"
 msgid "Edit category"
-msgstr "Teil-Kategorie bearbeiten"
+msgstr "Kategorie bearbeiten"
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Edit Part Category"
 msgid "Edit Category"
-msgstr "Teil-Kategorie bearbeiten"
+msgstr "Kategorie bearbeiten"
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Delete part category"
 msgid "Delete category"
-msgstr "Teil-Kategorie löschen"
+msgstr "Kategorie löschen"
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Kategorie auswählen"
+msgstr "Kategorie löschen"
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr "Teil-Kategorie anlegen"
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Set Category"
 msgid "New Category"
-msgstr "Teil-Kategorie auswählen"
+msgstr "Neue Kategorie"
 
 #: part/templates/part/category.html:67
-#, fuzzy
-#| msgid "top level Parts category"
 msgid "Top level part category"
-msgstr "oberste Teil-Kategorie"
+msgstr "Oberste Teil-Kategorie"
 
 #: part/templates/part/category.html:79
 msgid "Category Path"
@@ -4352,6 +4356,7 @@ msgid "Category Description"
 msgstr "Kategorie-Beschreibung"
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr "Unter-Kategorien"
 
@@ -4438,7 +4443,11 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. verschoben"
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr "Teil duplizieren"
 
@@ -4463,16 +4472,12 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% übereinstimmend)"
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Show Part Details"
 msgid "Part Details"
-msgstr "Teildetails anzeigen"
+msgstr "Teile-Details"
 
 #: part/templates/part/detail.html:66
-#, fuzzy
-#| msgid "Minimum allowed stock level"
 msgid "Minimum stock level"
-msgstr "Minimal zulässiger Lagerbestand"
+msgstr "Minimaler Bestand"
 
 #: part/templates/part/detail.html:97
 msgid "Latest Serial Number"
@@ -4485,7 +4490,7 @@ msgstr "Teilbestand"
 #: part/templates/part/detail.html:136
 #, python-format
 msgid "Showing stock for all variants of <em>%(full_name)s</em>"
-msgstr "Lagerbestand aller Varianten von <em>%(full_name)s</em>"
+msgstr "Bestand aller Varianten von <em>%(full_name)s</em>"
 
 #: part/templates/part/detail.html:146
 msgid "Part Test Templates"
@@ -4515,7 +4520,7 @@ msgstr "neue Variante anlegen"
 msgid "Add new parameter"
 msgstr "Parameter hinzufügen"
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr "Verknüpfte Teile"
 
@@ -4523,120 +4528,120 @@ msgstr "Verknüpfte Teile"
 msgid "Add Related"
 msgstr "Verknüpftes Teil hinzufügen"
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr "Stückliste"
 
-#: part/templates/part/detail.html:371
-#, fuzzy
-#| msgid "Part actions"
+#: part/templates/part/detail.html:345
 msgid "Export actions"
-msgstr "Teile Aktionen"
+msgstr "Export-Aktionen"
 
-#: part/templates/part/detail.html:375
-#, fuzzy
-#| msgid "Export"
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
-msgstr "Exportieren"
+msgstr "Stückliste exportieren"
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr "Stücklisten-Bericht drucken"
 
-#: part/templates/part/detail.html:387
-#, fuzzy
-#| msgid "Upload File"
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
-msgstr "Datei hochgeladen"
+msgstr "Stückliste hochladen"
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr "Stückliste kopieren"
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr "Stückliste überprüfen"
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr "Neue Stücklisten-Position"
 
-#: part/templates/part/detail.html:397
-#, fuzzy
-#| msgid "Edit BOM Item"
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
-msgstr "Stücklisten-Position bearbeiten"
+msgstr "Stücklisten-Position hinzufügen"
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr "Baugruppen"
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr "Gefertigte Teile"
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr "Bauauftragszuweisungen"
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr "Zulieferer"
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr "Teil-Hersteller"
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr "Herstellerteile löschen"
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr "Ausgewählte Stücklistenpositionen löschen?"
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr "Stücklisten-Position anlegen"
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr "verknüpftes Teil"
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr "verknüpftes Teil hinzufügen"
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr "Testergebnis-Vorlage hinzufügen"
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr "Teilenotizen bearbeiten"
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr "Stückpreis Einkauf - %(currency)s"
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr "Stückpreis Differenz - %(currency)s"
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr "Stückpreis Zulieferer - %(currency)s"
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr "Stückpreis - %(currency)s"
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr "Unzureichende Benutzerrechte."
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr "Teile aus Datei importieren"
 
@@ -4646,13 +4651,11 @@ msgstr "Teileliste"
 
 #: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
 msgid "You are subscribed to notifications for this part"
-msgstr ""
+msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
 
 #: part/templates/part/part_base.html:35
-#, fuzzy
-#| msgid "Stock keeping units for this part"
 msgid "Subscribe to notifications for this part"
-msgstr "Stock Keeping Units (SKU) für dieses Teil"
+msgstr "Benachrichtigungen für dieses Teil abonnieren"
 
 #: part/templates/part/part_base.html:43
 #: stock/templates/stock/item_base.html:28
@@ -4684,7 +4687,7 @@ msgstr "Bestands-Aktionen"
 
 #: part/templates/part/part_base.html:63
 msgid "Count part stock"
-msgstr "Lagerbestand zählen"
+msgstr "Bestand zählen"
 
 #: part/templates/part/part_base.html:69
 msgid "Transfer part stock"
@@ -4736,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr "Teil ist virtuell (kein physisches Teil)"
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr "Inaktiv"
 
@@ -4749,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr "Dieses Teil ist eine Variante von %(link)s"
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr "Auf Lager"
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr "Bestellt"
 
@@ -4769,12 +4772,12 @@ msgstr "Benötigt für Aufträge"
 msgid "Allocated to Orders"
 msgstr "Zu Bauaufträgen zugeordnet"
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr "Herstellbar"
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr "Im Bau"
 
@@ -4809,7 +4812,7 @@ msgid "Total Cost"
 msgstr "Gesamtkosten"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr "Keine Zulieferer-Preise verfügbar"
 
@@ -4843,18 +4846,28 @@ msgstr "Interner Preis"
 msgid "No pricing information is available for this part."
 msgstr "Keine Preise für dieses Teil verfügbar"
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr "Aus vorhandenen Bildern auswählen"
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
-msgstr ""
-"Teil '<strong>%(full_name)s</strong>' kann nicht gelöscht werden, da er noch als <strong>aktiv</strong>markiert ist.\n"
+msgstr "Teil '<strong>%(full_name)s</strong>' kann nicht gelöscht werden, da er noch als <strong>aktiv</strong>markiert ist.\n"
 "    <br>Deaktivieren Sie das Attribut \"Aktiv\" und versuchen Sie es erneut.\n"
 "    "
 
@@ -4871,7 +4884,7 @@ msgstr "Dieser Teil wird in Stücklisten für %(count)s andere Teile verwendet.
 #: part/templates/part/partial_delete.html:32
 #, python-format
 msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
-msgstr "Es sind %(count)s BestandsObjekte für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Bestandseinträge gelöscht:"
+msgstr "Es sind %(count)s Lagerartikel für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Lagerartikel gelöscht:"
 
 #: part/templates/part/partial_delete.html:43
 #, python-format
@@ -4916,7 +4929,7 @@ msgstr "Verkaufspreis anzeigen"
 msgid "Calculation parameters"
 msgstr "Berechnungsparameter"
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr "Zuliefererkosten"
 
@@ -4938,7 +4951,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
 msgid "Internal Cost"
 msgstr "Interne Kosten"
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr "Interne Preisspanne hinzufügen"
 
@@ -4958,9 +4971,9 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar."
 msgid "Set category for the following parts"
 msgstr "Kategorie für Teile setzen"
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr "Kein Bestand"
 
@@ -4981,136 +4994,123 @@ msgstr "Neue Variante von Vorlage anlegen <em>'%(full_name)s'</em>."
 msgid "Unknown database"
 msgstr "Unbekannte Datenbank"
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr "verknüpftes Teil hinzufügen"
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr "verknüpftes Teil entfernen"
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr "Teil-Kategorie auswählen"
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr "Kategorie für {n} Teile setzen"
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr "Referenzen zuteilen"
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr "Kein(e)"
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr "Teil-QR-Code"
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr "Teilbild auswählen"
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr "Teilbild aktualisiert"
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr "Teilbild nicht gefunden"
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr "Stückliste duplizieren"
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr "Bestätigen, dass Stückliste korrekt ist"
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr "überprüfte Stückliste"
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr "Teile zuordnen"
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr "Stückliste exportieren"
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr "Löschen des Teils bestätigen"
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr "Teil wurde gelöscht"
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr "Teilbepreisung"
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr "Teilparametervorlage anlegen"
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr "Teilparametervorlage bearbeiten"
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr "Teilparametervorlage löschen"
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr "Teil-Kategorie bearbeiten"
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr "Teil-Kategorie löschen"
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr "Teil-Kategorie wurde gelöscht"
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr "Kategorieparametervorlage anlegen"
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr "Kategorieparametervorlage bearbeiten"
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr "Kategorieparametervorlage löschen"
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr "neue Preisstaffel hinzufügt"
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr "Interne Preisspanne bearbeiten"
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr "Interne Preisspanne löschen"
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr "Vorlagen Name"
@@ -5137,7 +5137,7 @@ msgstr "Bericht-Vorlage ist ein"
 
 #: report/models.py:323
 msgid "StockItem query filters (comma-separated list of key=value pairs)"
-msgstr "BestandsObjekte-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
+msgstr "Lagerartikel-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
 
 #: report/models.py:331
 msgid "Include Installed Tests"
@@ -5145,53 +5145,53 @@ msgstr "einfügen Installiert in Tests"
 
 #: report/models.py:332
 msgid "Include test results for stock items installed inside assembled item"
-msgstr "Test-Ergebnisse für BestandsObjekte in Baugruppen einschließen"
+msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen"
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr "Bauauftrag Filter"
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr "Teil Filter"
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr "Bestellungs-Abfragefilter"
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr "Auftrags-Abfragefilter"
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr "Snippet"
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr "Berichts-Snippet"
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr "Snippet-Beschreibung"
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr "Ressource"
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr "Berichts-Ressource"
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr "Ressource-Beschreibung"
 
@@ -5199,16 +5199,11 @@ msgstr "Ressource-Beschreibung"
 msgid "Required For"
 msgstr "benötigt für"
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr "Positionen"
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
-msgstr "BestandsObjekt Test-Bericht"
+msgstr "Lagerartikel Test-Bericht"
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5217,47 +5212,36 @@ msgstr "BestandsObjekt Test-Bericht"
 msgid "Serial Number"
 msgstr "Seriennummer"
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr "Testergebnisse"
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr "Test"
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr "Ergebnis"
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr "Datum"
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr "bestanden"
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr "fehlgeschlagen"
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr "verbaute Objekte"
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr "Seriennummer"
-
 #: stock/api.py:422
-#, fuzzy
-#| msgid "Quantity to receive"
 msgid "Quantity is required"
-msgstr "Zu erhaltende Menge"
+msgstr "Menge ist erforderlich"
 
 #: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
 #: stock/templates/stock/item_base.html:382
@@ -5267,7 +5251,7 @@ msgstr "Ablaufdatum"
 
 #: stock/forms.py:92 stock/forms.py:266
 msgid "Expiration date for this stock item"
-msgstr "Ablaufdatum für dieses BestandsObjekt"
+msgstr "Ablaufdatum für diesen Lagerartikel"
 
 #: stock/forms.py:95
 msgid "Enter unique serial numbers (or leave blank)"
@@ -5291,7 +5275,7 @@ msgstr " Transaktionsnotizen hinzufügen (optional)"
 
 #: stock/forms.py:194
 msgid "Stock item to install"
-msgstr "BestandsObjekt zum verbauen"
+msgstr "Lagerartikel für Einbau"
 
 #: stock/forms.py:224
 msgid "Must not exceed available quantity"
@@ -5307,7 +5291,7 @@ msgstr "nicht mehr verbauen bestätigen"
 
 #: stock/forms.py:240
 msgid "Confirm removal of installed stock items"
-msgstr "Entfernen der verbauten BestandsObjekt bestätigen"
+msgstr "Entfernen der verbauten Lagerartikel bestätigen"
 
 #: stock/models.py:60 stock/models.py:624
 #: stock/templates/stock/item_base.html:422
@@ -5320,7 +5304,7 @@ msgstr "Besitzer auswählen"
 
 #: stock/models.py:352
 msgid "StockItem with this serial number already exists"
-msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits"
+msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
 
 #: stock/models.py:388
 #, python-brace-format
@@ -5349,7 +5333,7 @@ msgstr "Referenz verweist nicht auf das gleiche Teil"
 
 #: stock/models.py:476
 msgid "Parent Stock Item"
-msgstr "Eltern-BestandsObjekt"
+msgstr "Eltern-Lagerartikel"
 
 #: stock/models.py:485
 msgid "Base part"
@@ -5357,7 +5341,7 @@ msgstr "Basis-Teil"
 
 #: stock/models.py:493
 msgid "Select a matching supplier part for this stock item"
-msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen"
+msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
 
 #: stock/models.py:498 stock/templates/stock/location.html:12
 #: stock/templates/stock/stock_app_base.html:8
@@ -5370,7 +5354,7 @@ msgstr "Wo wird dieses Teil normalerweise gelagert?"
 
 #: stock/models.py:508
 msgid "Packaging this stock item is stored in"
-msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in"
+msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
 
 #: stock/models.py:513 stock/templates/stock/item_base.html:271
 msgid "Installed In"
@@ -5386,7 +5370,7 @@ msgstr "Seriennummer für dieses Teil"
 
 #: stock/models.py:546
 msgid "Batch code for this stock item"
-msgstr "Losnummer für dieses BestandsObjekt"
+msgstr "Losnummer für diesen Lagerartikel"
 
 #: stock/models.py:550
 msgid "Stock Quantity"
@@ -5398,7 +5382,7 @@ msgstr "Quellbau"
 
 #: stock/models.py:561
 msgid "Build for this stock item"
-msgstr "Bauauftrag für dieses BestandsObjekt"
+msgstr "Bauauftrag für diesen Lagerartikel"
 
 #: stock/models.py:572
 msgid "Source Purchase Order"
@@ -5406,7 +5390,7 @@ msgstr "Quelle Bestellung"
 
 #: stock/models.py:575
 msgid "Purchase order for this stock item"
-msgstr "Bestellung für dieses BestandsObjekt"
+msgstr "Bestellung für diesen Lagerartikel"
 
 #: stock/models.py:581
 msgid "Destination Sales Order"
@@ -5414,7 +5398,7 @@ msgstr "Ziel-Auftrag"
 
 #: stock/models.py:588
 msgid "Expiry date for stock item. Stock will be considered expired after this date"
-msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet"
+msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet"
 
 #: stock/models.py:601
 msgid "Delete on deplete"
@@ -5422,11 +5406,11 @@ msgstr "Löschen wenn leer"
 
 #: stock/models.py:601
 msgid "Delete this Stock Item when stock is depleted"
-msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht"
+msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
 
 #: stock/models.py:611 stock/templates/stock/item.html:111
 msgid "Stock Item Notes"
-msgstr "BestandsObjekt-Notizen"
+msgstr "Lagerartikel-Notizen"
 
 #: stock/models.py:620
 msgid "Single unit purchase price at time of purchase"
@@ -5438,7 +5422,7 @@ msgstr "Zur Löschung vorgesehen"
 
 #: stock/models.py:631
 msgid "This StockItem will be deleted by the background worker"
-msgstr "Dieser Lagerbestand wird vom Hintergrund-Prozess gelöscht"
+msgstr "Dieser Lagerartikel wird vom Hintergrund-Prozess gelöscht"
 
 #: stock/models.py:1094
 msgid "Part is not set as trackable"
@@ -5468,7 +5452,7 @@ msgstr "Seriennummern {exists} existieren bereits"
 
 #: stock/models.py:1277
 msgid "StockItem cannot be moved as it is not in stock"
-msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist"
+msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist"
 
 #: stock/models.py:1775
 msgid "Entry notes"
@@ -5486,7 +5470,7 @@ msgstr "Anhang muss für diesen Test hochgeladen werden"
 msgid "Test name"
 msgstr "Name des Tests"
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr "Testergebnis"
 
@@ -5503,54 +5487,41 @@ msgid "Test notes"
 msgstr "Test Notizen"
 
 #: stock/serializers.py:166
-#, fuzzy
-#| msgid "Purchase order for this stock item"
 msgid "Purchase price of this stock item"
-msgstr "Bestellung für dieses BestandsObjekt"
+msgstr "Kaufpreis für diesen Lagerartikel"
 
 #: stock/serializers.py:173
-#, fuzzy
-#| msgid "Purchase order for this stock item"
 msgid "Purchase currency of this stock item"
-msgstr "Bestellung für dieses BestandsObjekt"
+msgstr "Kaufwährung dieses Lagerartikels"
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of stock items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "Anzahl der zu bauenden BestandsObjekt"
+msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben"
 
 #: stock/serializers.py:302
-#, fuzzy, python-brace-format
-#| msgid "Quantity must not exceed available stock quantity ({n})"
+#, python-brace-format
 msgid "Quantity must not exceed available stock quantity ({q})"
-msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
+msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new items"
-msgstr "Seriennummer für dieses Endprodukt eingeben"
+msgstr "Seriennummern für neue Teile eingeben"
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
-msgstr "Ziel-Lagerbestand"
+msgstr "Ziel-Bestand"
 
 #: stock/serializers.py:326
-#, fuzzy
-#| msgid "Location not specified"
 msgid "Optional note field"
-msgstr "Standort nicht angegeben"
+msgstr "Optionales Notizfeld"
 
 #: stock/serializers.py:339
-#, fuzzy
-#| msgid "Serial number cannot be set if quantity greater than 1"
 msgid "Serial numbers cannot be assigned to this part"
-msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
+msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
 
 #: stock/serializers.py:557
 msgid "StockItem primary key value"
-msgstr ""
+msgstr "Primärschlüssel Lagerelement"
 
 #: stock/serializers.py:585
 msgid "Stock transaction notes"
@@ -5562,7 +5533,7 @@ msgstr "Eine Liste der Lagerbestände muss angegeben werden"
 
 #: stock/templates/stock/item.html:18
 msgid "Stock Tracking Information"
-msgstr "Informationen zum Lagerbestands-Tracking"
+msgstr "Informationen zur Bestand-Verfolgung"
 
 #: stock/templates/stock/item.html:29
 msgid "New Entry"
@@ -5570,13 +5541,14 @@ msgstr "neuer Eintrag"
 
 #: stock/templates/stock/item.html:48
 msgid "Child Stock Items"
-msgstr "Kind-BestandsObjekt"
+msgstr "Kind-Lagerartikel"
 
 #: stock/templates/stock/item.html:55
 msgid "This stock item does not have any child items"
-msgstr "Dieses BestandsObjekt hat keine Kinder"
+msgstr "Dieser Lagerartikel hat keine Kinder"
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr "Testdaten"
 
@@ -5594,11 +5566,11 @@ msgstr "Testdaten hinzufügen"
 
 #: stock/templates/stock/item.html:133
 msgid "Installed Stock Items"
-msgstr "Installierte BestandsObjekte"
+msgstr "Installierte Lagerartikel"
 
 #: stock/templates/stock/item.html:137 stock/views.py:515
 msgid "Install Stock Item"
-msgstr "BestandsObjekt installiert"
+msgstr "Lagerartikel installieren"
 
 #: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
 msgid "Add Test Result"
@@ -5649,7 +5621,7 @@ msgstr "Bestand entfernen"
 
 #: stock/templates/stock/item_base.html:78
 msgid "Serialize stock"
-msgstr "Lagerbestand serialisieren"
+msgstr "Bestand serialisieren"
 
 #: stock/templates/stock/item_base.html:82
 #: stock/templates/stock/location.html:53
@@ -5666,7 +5638,7 @@ msgstr "zu Bestand zurückgeben"
 
 #: stock/templates/stock/item_base.html:91
 msgid "Uninstall stock item"
-msgstr "BestandsObjekt deinstallieren"
+msgstr "Lagerartikel deinstallieren"
 
 #: stock/templates/stock/item_base.html:91
 msgid "Uninstall"
@@ -5674,7 +5646,7 @@ msgstr "Deinstallieren"
 
 #: stock/templates/stock/item_base.html:94
 msgid "Install stock item"
-msgstr "BestandsObjekt installieren"
+msgstr "Lagerartikel installieren"
 
 #: stock/templates/stock/item_base.html:94
 msgid "Install"
@@ -5686,25 +5658,25 @@ msgstr "in Variante ändern"
 
 #: stock/templates/stock/item_base.html:109
 msgid "Duplicate stock item"
-msgstr "BestandsObjekt duplizieren"
+msgstr "Lagerartikel duplizieren"
 
 #: stock/templates/stock/item_base.html:111
 msgid "Edit stock item"
-msgstr "BestandsObjekt bearbeiten"
+msgstr "Lagerartikel bearbeiten"
 
 #: stock/templates/stock/item_base.html:114
 msgid "Delete stock item"
-msgstr "BestandsObjekt löschen"
+msgstr "Lagerartikel löschen"
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr "abgelaufen"
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr "überfällig"
 
@@ -5714,37 +5686,37 @@ msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nic
 
 #: stock/templates/stock/item_base.html:168
 msgid "This stock item is in production and cannot be edited."
-msgstr "Dieses BestandsObjekt wird gerade hergestellt und kann nicht geändert werden."
+msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden."
 
 #: stock/templates/stock/item_base.html:169
 msgid "Edit the stock item from the build view."
-msgstr "Ändern des BestandsObjekts in der Bauauftrag-Ansicht."
+msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht."
 
 #: stock/templates/stock/item_base.html:182
 msgid "This stock item has not passed all required tests"
-msgstr "Dieses BestandsObjekt hat nicht alle Tests bestanden"
+msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
 
 #: stock/templates/stock/item_base.html:190
 #, python-format
 msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
-msgstr "Dieses BestandsObjekt ist dem Auftrag %(link)s zugewiesen (Menge: %(qty)s)"
+msgstr "Dieser Lagerartikel ist dem Auftrag %(link)s zugewiesen (Menge: %(qty)s)"
 
 #: stock/templates/stock/item_base.html:198
 #, python-format
 msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
-msgstr "Dieses BestandsObjekt ist dem Bauauftrag %(link)s zugewiesen (Menge: %(qty)s)"
+msgstr "Dieser Lagerartikel ist dem Bauauftrag %(link)s zugewiesen (Menge: %(qty)s)"
 
 #: stock/templates/stock/item_base.html:204
 msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr "Dieses BestandsObjekt ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
+msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
 
 #: stock/templates/stock/item_base.html:208
 msgid "This stock item cannot be deleted as it has child items"
-msgstr "Dieses BestandsObjekt kann nicht gelöscht werden, da es Kinder besitzt"
+msgstr "Dieser Lagerartikel kann nicht gelöscht werden, da es Kinder besitzt"
 
 #: stock/templates/stock/item_base.html:212
 msgid "This stock item will be automatically deleted when all stock is depleted."
-msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand aufgebraucht ist."
+msgstr "Dieser Bestand wird automatisch gelöscht wenn der Bestand aufgebraucht ist."
 
 #: stock/templates/stock/item_base.html:241
 msgid "previous page"
@@ -5774,12 +5746,12 @@ msgstr "Kein Hersteller ausgewählt"
 #: stock/templates/stock/item_base.html:386
 #, python-format
 msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr "Dieses BestandsObjekt lief am %(item.expiry_date)s ab"
+msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab"
 
 #: stock/templates/stock/item_base.html:388
 #, python-format
 msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab"
+msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
 
 #: stock/templates/stock/item_base.html:395
 #: templates/js/translated/stock.js:1259
@@ -5804,7 +5776,7 @@ msgstr "Bestandsstatus bearbeiten"
 
 #: stock/templates/stock/item_delete.html:9
 msgid "Are you sure you want to delete this stock item?"
-msgstr "Sind Sie sicher, dass Sie dieses BestandsObjekt löschen wollen?"
+msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel löschen wollen?"
 
 #: stock/templates/stock/item_delete.html:12
 #, python-format
@@ -5813,36 +5785,36 @@ msgstr "Damit werden <strong>%(qty)s</strong> Elemente vom Bestand von <strong>%
 
 #: stock/templates/stock/item_install.html:8
 msgid "Install another Stock Item into this item."
-msgstr "Ein weiteres BestandsObjekt in dieses Teil installiert."
+msgstr "Einen weiteren Lagerartikel in dieses Teil installiert."
 
 #: stock/templates/stock/item_install.html:11
 #: stock/templates/stock/item_install.html:24
 msgid "Stock items can only be installed if they meet the following criteria"
-msgstr "BestandsObjekte können nur installiert werden wenn folgende Kriterien erfüllt werden"
+msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden"
 
 #: stock/templates/stock/item_install.html:14
 msgid "The Stock Item links to a Part which is in the BOM for this Stock Item"
-msgstr ""
+msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
 
 #: stock/templates/stock/item_install.html:15
 msgid "The Stock Item is currently in stock"
-msgstr ""
+msgstr "Dieser Lagerartikel ist aktuell vorhanden"
 
 #: stock/templates/stock/item_install.html:16
 msgid "The Stock Item is serialized and does not belong to another item"
-msgstr ""
+msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil"
 
 #: stock/templates/stock/item_install.html:21
 msgid "Install this Stock Item in another stock item."
-msgstr ""
+msgstr "Diesen Lagerartikel in einem anderen Lagerartikel installieren."
 
 #: stock/templates/stock/item_install.html:27
 msgid "The part associated to this Stock Item belongs to another part's BOM"
-msgstr ""
+msgstr "Das diesem Lagerartikel zugeordnete Teil gehört zur Stückliste eines anderen Teils"
 
 #: stock/templates/stock/item_install.html:28
 msgid "This Stock Item is serialized and does not belong to another item"
-msgstr ""
+msgstr "Dieser Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil"
 
 #: stock/templates/stock/item_serialize.html:5
 msgid "Create serialized items from this stock item."
@@ -5877,10 +5849,8 @@ msgid "New Location"
 msgstr "Neuer Lagerort"
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "Delete stock allocation"
 msgid "Top level stock location"
-msgstr "Bestands-Zuordnung löschen"
+msgstr "Oberster Lagerstandort"
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5888,17 +5858,10 @@ msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr "Unter-Lagerorte"
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr "Teilbestand"
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5920,18 +5883,30 @@ msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?"
 msgid "Loading..."
 msgstr "Lade..."
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
-msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut"
+msgstr "Die folgenden Lagerartikel werden nicht mehr verbaut"
 
 #: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
 msgid "Convert Stock Item"
-msgstr "BestandsObjekt umwandeln"
+msgstr "Lagerartikel umwandeln"
 
 #: stock/templates/stock/stockitem_convert.html:8
 #, python-format
 msgid "This stock item is current an instance of <em>%(part)s</em>"
-msgstr "BestandsObjekt ist aktuell eine Instanz von <em>%(part)s</em>"
+msgstr "Lagerartikel ist aktuell eine Instanz von <em>%(part)s</em>"
 
 #: stock/templates/stock/stockitem_convert.html:9
 msgid "It can be converted to one of the part variants listed below."
@@ -5943,11 +5918,11 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
 
 #: stock/templates/stock/tracking_delete.html:6
 msgid "Are you sure you want to delete this stock tracking entry?"
-msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag löschen wollen?"
+msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?"
 
 #: stock/views.py:162
 msgid "Edit Stock Location"
-msgstr "BestandsObjekt-Lagerort bearbeiten"
+msgstr "Lagerartikel-Ort bearbeiten"
 
 #: stock/views.py:269 stock/views.py:891 stock/views.py:1017
 #: stock/views.py:1299
@@ -5976,7 +5951,7 @@ msgstr "gültigen Lagerort angeben"
 
 #: stock/views.py:356
 msgid "Stock item returned from customer"
-msgstr "BestandsObjekt retoure vom Kunden"
+msgstr "Lagerartikel retoure vom Kunden"
 
 #: stock/views.py:367
 msgid "Delete All Test Data"
@@ -5988,11 +5963,11 @@ msgstr "Löschen Testdaten bestätigen"
 
 #: stock/views.py:489
 msgid "Stock Item QR Code"
-msgstr "BestandsObjekt-QR-Code"
+msgstr "Lagerartikel-QR-Code"
 
 #: stock/views.py:663
 msgid "Uninstall Stock Items"
-msgstr "BestandsObjekte deinstallieren"
+msgstr "Lagerartikel deinstallieren"
 
 #: stock/views.py:760 templates/js/translated/stock.js:618
 msgid "Confirm stock adjustment"
@@ -6000,11 +5975,11 @@ msgstr "Bestands-Anpassung bestätigen"
 
 #: stock/views.py:771
 msgid "Uninstalled stock items"
-msgstr "BestandsObjekte deinstalliert"
+msgstr "Lagerartikel deinstalliert"
 
 #: stock/views.py:793 templates/js/translated/stock.js:288
 msgid "Edit Stock Item"
-msgstr "BestandsObjekt bearbeiten"
+msgstr "Lagerartikel bearbeiten"
 
 #: stock/views.py:943
 msgid "Create new Stock Location"
@@ -6012,7 +5987,7 @@ msgstr "Neuen Lagerort erstellen"
 
 #: stock/views.py:1044
 msgid "Create new Stock Item"
-msgstr "Neues BestandsObjekt hinzufügen"
+msgstr "Neuen Lagerartikel hinzufügen"
 
 #: stock/views.py:1186 templates/js/translated/stock.js:268
 msgid "Duplicate Stock Item"
@@ -6028,19 +6003,19 @@ msgstr "Bestand-Lagerort löschen"
 
 #: stock/views.py:1381
 msgid "Delete Stock Item"
-msgstr "BestandsObjekt löschen"
+msgstr "Lagerartikel löschen"
 
 #: stock/views.py:1392
 msgid "Delete Stock Tracking Entry"
-msgstr "Lagerbestands-Tracking-Eintrag löschen"
+msgstr "Bestand-Tracking-Eintrag löschen"
 
 #: stock/views.py:1399
 msgid "Edit Stock Tracking Entry"
-msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
+msgstr "Bestand-Verfolgungs-Eintrag bearbeiten"
 
 #: stock/views.py:1408
 msgid "Add Stock Tracking Entry"
-msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
+msgstr "Bestand-Verfolgungs-Eintrag hinzufügen"
 
 #: templates/403.html:5 templates/403.html:11
 msgid "Permission Denied"
@@ -6063,16 +6038,12 @@ msgid "Index"
 msgstr "Index"
 
 #: templates/InvenTree/index.html:88
-#, fuzzy
-#| msgid "Supplied Parts"
 msgid "Subscribed Parts"
-msgstr "Zuliefererteile"
+msgstr "Abonnierte Teile"
 
 #: templates/InvenTree/index.html:98
-#, fuzzy
-#| msgid "Subcategories"
 msgid "Subscribed Categories"
-msgstr "Unter-Kategorien"
+msgstr "Abonnierte Kategorien"
 
 #: templates/InvenTree/index.html:108
 msgid "Latest Parts"
@@ -6096,7 +6067,7 @@ msgstr "abgelaufener Bestand"
 
 #: templates/InvenTree/index.html:202
 msgid "Stale Stock"
-msgstr "Lagerbestand überfällig"
+msgstr "Bestand überfällig"
 
 #: templates/InvenTree/index.html:224
 msgid "Build Orders In Progress"
@@ -6171,12 +6142,13 @@ msgid "Server Settings"
 msgstr "Server Einstellungen"
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
-msgstr ""
+msgstr "Anmeldeeinstellungen"
 
 #: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
 msgid "Signup"
-msgstr ""
+msgstr "Anmelden"
 
 #: templates/InvenTree/settings/part.html:7
 msgid "Part Settings"
@@ -6194,11 +6166,11 @@ msgstr "Teil importieren"
 msgid "Part Parameter Templates"
 msgstr "Teil-Parametervorlage"
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr "Bestellungs-Einstellungen"
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr "Berichts-Einstellungen"
@@ -6216,16 +6188,12 @@ msgid "Settings"
 msgstr "Einstellungen"
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit setting"
 msgid "Edit Global Setting"
-msgstr "Einstellungen ändern"
+msgstr "Allgemeine Einstellungen bearbeiten"
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit setting"
 msgid "Edit User Setting"
-msgstr "Einstellungen ändern"
+msgstr "Benutzereinstellungen bearbeiten"
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6245,6 +6213,59 @@ msgstr "Vorlage löschen"
 msgid "No part parameter templates found"
 msgstr "Keine Teilparametervorlagen gefunden"
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr "Benutzer-Einstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr "Kontoeinstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr "Anzeigeeinstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "Sucheinstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr "Auftrags-Einstellungen"
@@ -6253,10 +6274,6 @@ msgstr "Auftrags-Einstellungen"
 msgid "Stock Settings"
 msgstr "Bestands-Einstellungen"
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr "Kontoeinstellungen"
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6282,82 +6299,74 @@ msgstr "Nachname"
 
 #: templates/InvenTree/settings/user.html:54
 msgid "The following email addresses are associated with your account:"
-msgstr ""
+msgstr "Die folgenden E-Mail-Adressen sind mit deinem Konto verknüpft:"
 
 #: templates/InvenTree/settings/user.html:74
 msgid "Verified"
-msgstr ""
+msgstr "Verifiziert"
 
 #: templates/InvenTree/settings/user.html:76
 msgid "Unverified"
-msgstr ""
+msgstr "Nicht verifiziert"
 
 #: templates/InvenTree/settings/user.html:78
 msgid "Primary"
-msgstr ""
+msgstr "Primär"
 
 #: templates/InvenTree/settings/user.html:84
 msgid "Make Primary"
-msgstr ""
+msgstr "Als Primär Festlegen"
 
 #: templates/InvenTree/settings/user.html:85
 msgid "Re-send Verification"
-msgstr ""
+msgstr "Verifikation erneut senden"
 
 #: templates/InvenTree/settings/user.html:86
 #: templates/InvenTree/settings/user.html:153
 msgid "Remove"
-msgstr ""
+msgstr "Entfernen"
 
 #: templates/InvenTree/settings/user.html:93
 msgid "Warning:"
-msgstr ""
+msgstr "Warnung:"
 
 #: templates/InvenTree/settings/user.html:94
 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
-msgstr ""
+msgstr "Sie haben derzeit keine E-Mail-Adressen eingerichtet. Sie sollten wirklich eine hinzufügen, damit Sie Benachrichtigungen erhalten, ihr Konto Zurücksetzen können usw."
 
 #: templates/InvenTree/settings/user.html:101
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Add Email Address"
-msgstr "Kontakt-Email"
+msgstr "E-Mail-Adresse hinzufügen"
 
 #: templates/InvenTree/settings/user.html:111
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Enter e-mail address"
-msgstr "Kontakt-Email"
+msgstr "Geben Sie Ihre Email-Adresse ein"
 
 #: templates/InvenTree/settings/user.html:113
-#, fuzzy
-#| msgid "Email"
 msgid "Add Email"
-msgstr "Email"
+msgstr "E-Mail-Adresse hinzufügen"
 
 #: templates/InvenTree/settings/user.html:123
 msgid "Social Accounts"
-msgstr ""
+msgstr "Soziale Konten"
 
 #: templates/InvenTree/settings/user.html:128
 msgid "You can sign in to your account using any of the following third party accounts:"
-msgstr ""
+msgstr "Sie können sich mit einem der folgenden Drittanbieterkonten bei Ihrem Konto anmelden:"
 
 #: templates/InvenTree/settings/user.html:162
 msgid "There are no social network accounts connected to your InvenTree account"
-msgstr ""
+msgstr "Es sind keine sozialen Netzwerke mit Ihrem InvenTree-Konto verbunden"
 
 #: templates/InvenTree/settings/user.html:167
 msgid "Add a 3rd Party Account"
-msgstr ""
+msgstr "Drittanbieter-Konto hinzufügen"
 
 #: templates/InvenTree/settings/user.html:177
 msgid "Language Settings"
 msgstr "Spracheinstellung"
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Set Language"
 msgid "Select language"
 msgstr "Sprache festlegen"
 
@@ -6376,17 +6385,19 @@ msgstr "Sprache festlegen"
 
 #: templates/InvenTree/settings/user.html:213
 msgid "Some languages are not complete"
-msgstr ""
+msgstr "Einige Sprachen sind nicht vollständig übersetzt"
 
 #: templates/InvenTree/settings/user.html:215
 msgid "Show only sufficent"
+msgstr "Zeige nur ausreichende"
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:217
-#, fuzzy
-#| msgid "Show stale stock"
 msgid "Show them too"
-msgstr "Alten Bestand anzeigen"
+msgstr "Auch unvollständige anzeigen"
 
 #: templates/InvenTree/settings/user.html:224
 msgid "Help the translation efforts!"
@@ -6399,23 +6410,15 @@ msgstr "Die Übersetzung von InvenTree wird <a href=\"%(link)s\">von Nutzern mit
 
 #: templates/InvenTree/settings/user.html:233
 msgid "Do you really want to remove the selected email address?"
-msgstr ""
-
-#: templates/InvenTree/settings/user_display.html:9
-#, fuzzy
-#| msgid "Email Settings"
-msgid "Display Settings"
-msgstr "E-Mail-Einstellungen"
+msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?"
 
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr "Anzeige-Einstellungen"
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Set Theme"
 msgid "Select theme"
-msgstr "Design auswählen"
+msgstr "Stil auswählen"
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6429,20 +6432,12 @@ msgstr "Startseite-Einstellungen"
 msgid "Label Settings"
 msgstr "Labeleinstellungen"
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr "Sucheinstellungen"
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr "Benutzer-Einstellungen"
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr "InvenTree-Versionsinformationen"
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6515,170 +6510,154 @@ msgstr "Versionsinformationen kopieren"
 
 #: templates/account/email_confirm.html:6
 #: templates/account/email_confirm.html:10
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Confirm Email Address"
-msgstr "Kontakt-Email"
+msgstr "E-Mail-Adresse bestätigen"
 
 #: templates/account/email_confirm.html:16
 #, python-format
 msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an email address for user %(user_display)s."
-msgstr ""
+msgstr "Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E-Mail Adresse für den Benutzer %(user_display)s ist."
 
 #: templates/account/email_confirm.html:27
 #, python-format
 msgid "This email confirmation link expired or is invalid. Please <a href=\"%(email_url)s\">issue a new email confirmation request</a>."
-msgstr ""
+msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte <a href=\"%(email_url)s\">fordern Sie eine neue E-Mail Bestätigung an</a>."
 
 #: templates/account/login.html:6 templates/account/login.html:16
 #: templates/account/login.html:39
 msgid "Sign In"
-msgstr ""
+msgstr "Einloggen"
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
-msgstr ""
+msgstr "Bitte melden Sie sich mit einem Ihrer bestehenden Drittkonten an oder  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">registrieren Sie sich</a> für ein Konto und melden Sie sich unten an:"
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
-msgstr ""
+msgstr "Wenn Sie noch kein Konto erstellt haben, dann bitte<a href=\"%(signup_url)s\">registrieren Sie sich</a> zuerst."
 
 #: templates/account/login.html:42
 msgid "Forgot Password?"
-msgstr ""
+msgstr "Passwort vergessen?"
 
 #: templates/account/login.html:47
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree demo instance"
-msgstr "InvenTree Instanzname"
+msgstr "InvenTree Demo-Instanz"
 
 #: templates/account/login.html:47
 msgid "Click here for login details"
-msgstr ""
+msgstr "Für Anmeldedetails hier klicken"
 
 #: templates/account/login.html:55
 msgid "or use SSO"
-msgstr ""
+msgstr "oder SSO verwenden"
 
 #: templates/account/logout.html:5 templates/account/logout.html:8
 #: templates/account/logout.html:20
 msgid "Sign Out"
-msgstr ""
+msgstr "Ausloggen"
 
 #: templates/account/logout.html:10
 msgid "Are you sure you want to sign out?"
-msgstr ""
+msgstr "Möchtest Sie sich wirklich abmelden?"
 
 #: templates/account/logout.html:19
 msgid "Back to Site"
-msgstr ""
+msgstr "Zurück zur Website"
 
 #: templates/account/password_reset.html:5
 #: templates/account/password_reset.html:12
 msgid "Password Reset"
-msgstr ""
+msgstr "Passwort zurücksetzen"
 
 #: templates/account/password_reset.html:18
 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
-msgstr ""
+msgstr "Passwort vergessen? Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen eine E-Mail mit der Sie das Passwort zurücksetzen können."
 
 #: templates/account/password_reset.html:23
 msgid "Reset My Password"
-msgstr ""
+msgstr "Mein Passwort zurücksetzen"
 
 #: templates/account/password_reset.html:27 templates/account/signup.html:36
 msgid "This function is currently disabled. Please contact an administrator."
-msgstr ""
+msgstr "Diese Funktion ist derzeit deaktiviert. Bitte kontaktieren Sie einen Administrator."
 
 #: templates/account/password_reset_from_key.html:7
 msgid "Bad Token"
-msgstr ""
+msgstr "Ungültiger Schlüssel"
 
 #: templates/account/password_reset_from_key.html:11
 #, python-format
 msgid "The password reset link was invalid, possibly because it has already been used.  Please request a <a href=\"%(passwd_reset_url)s\">new password reset</a>."
-msgstr ""
+msgstr "Der Link zum Zurücksetzen des Kennworts war ungültig, da er bereits verwendet wurde.  Bitte fordern Sie eine <a href=\"%(passwd_reset_url)s\">neue Passwortwiederherstellung</a> an."
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Change Password"
 msgid "Change password"
 msgstr "Passwort ändern"
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
-msgstr ""
+msgstr "Ihr Passwort wurde geändert."
 
 #: templates/account/signup.html:11 templates/account/signup.html:22
 msgid "Sign Up"
-msgstr ""
+msgstr "Anmelden"
 
 #: templates/account/signup.html:13
 #, python-format
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
-msgstr ""
+msgstr "Haben Sie bereits ein Konto? Dann melden Sie sich bitte <a href=\"%(login_url)s\">an</a>."
 
 #: templates/account/signup.html:27
 msgid "Or use a SSO-provider for signup"
-msgstr ""
+msgstr "Oder verwenden Sie einen SSO-Anbieter für die Anmeldung"
 
 #: templates/admin_button.html:2
 msgid "View in administration panel"
-msgstr ""
+msgstr "Im Administrationsbereich anzeigen"
 
 #: templates/base.html:96
-#, fuzzy
-#| msgid "Server status"
 msgid "Server Restart Required"
-msgstr "Serverstatus"
+msgstr "Server-Neustart erforderlich"
 
 #: templates/base.html:99
 msgid "A configuration option has been changed which requires a server restart"
-msgstr ""
+msgstr "Eine Konfigurationsoption wurde geändert, die einen Neustart des Servers erfordert"
 
 #: templates/base.html:99
 msgid "Contact your system administrator for further information"
-msgstr ""
+msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen"
 
 #: templates/email/build_order_required_stock.html:7
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock is required for the following build order"
-msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
+msgstr "Für die folgenden Bauaufträge werden Lagerartikel benötigt"
 
 #: templates/email/build_order_required_stock.html:8
 #, python-format
 msgid "Build order %(build)s - building %(quantity)s x %(part)s"
-msgstr ""
+msgstr "Bauauftrag %(build)s - %(quantity)s x %(part)s bauen"
 
 #: templates/email/build_order_required_stock.html:10
 msgid "Click on the following link to view this build order"
-msgstr ""
+msgstr "Klicken Sie auf den folgenden Link, um diesen Bauauftrag anzuzeigen"
 
 #: templates/email/build_order_required_stock.html:14
-#, fuzzy
-#| msgid "Allow sale of expired stock"
 msgid "The following parts are low on required stock"
-msgstr "Verkauf von abgelaufenem Bestand erlaubt"
+msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel"
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Build Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Bau-Anzahl"
+msgstr "Benötigte Menge"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr "Verfügbar"
@@ -6686,34 +6665,28 @@ msgstr "Verfügbar"
 #: templates/email/build_order_required_stock.html:38
 #: templates/email/low_stock_notification.html:31
 msgid "You are receiving this email because you are subscribed to notifications for this part "
-msgstr ""
+msgstr "Sie erhalten diese E-Mail, weil Sie Benachrichtigungen für diesen Teil abonniert haben "
 
 #: templates/email/email.html:35
-#, fuzzy
-#| msgid "InvenTree Version"
 msgid "InvenTree version"
 msgstr "InvenTree-Version"
 
 #: templates/email/low_stock_notification.html:7
 #, python-format
 msgid " The available stock for %(part)s has fallen below the configured minimum level"
-msgstr ""
+msgstr " Der verfügbare Bestand für %(part)s ist unter das konfigurierte Mindestniveau gefallen"
 
 #: templates/email/low_stock_notification.html:9
 msgid "Click on the following link to view this part"
-msgstr ""
+msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen"
 
 #: templates/email/low_stock_notification.html:17
-#, fuzzy
-#| msgid "Stale Stock"
 msgid "Total Stock"
-msgstr "Lagerbestand überfällig"
+msgstr "Gesamtbestand"
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Minimum Quantity"
-msgstr "Bau-Anzahl"
+msgstr "Mindestmenge"
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6731,6 +6704,85 @@ msgstr "Der angegebene Server muss erreichbar sein"
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein"
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr "Lagerartikel ausgewählt"
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr "Bericht-Vorlage auswählen"
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr "Test-Bericht-Vorlage auswählen"
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr "Lagerartikel auswählen"
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr "Lagerartikel müssen vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr "Keine Berichte gefunden"
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr "Keine Berichtsvorlagen für ausgewählte Lagerartikel gefunden"
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr "Bauauftrag auswählen"
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden"
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "Teile auswählen"
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr "Teil muss vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden"
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr "Bestellungen auswählen"
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr "Bestellung muss vor dem Berichtsdruck ausgewählt werden"
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden"
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr "Aufträge auswählen"
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr "Keine Antwort"
@@ -6850,11 +6902,11 @@ msgstr "keine URL in der Antwort"
 
 #: templates/js/translated/barcode.js:309
 msgid "Link Barcode to Stock Item"
-msgstr "Barcode mit BestandsObjekt verknüpfen"
+msgstr "Barcode mit Lagerartikel verknüpfen"
 
 #: templates/js/translated/barcode.js:332
 msgid "This will remove the association between this stock item and the barcode"
-msgstr "Dadurch wird die Verknüpfung zwischen diesem BestandsObjekt und dem Barcode entfernt"
+msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barcode entfernt"
 
 #: templates/js/translated/barcode.js:338
 msgid "Unlink"
@@ -6862,11 +6914,11 @@ msgstr "Entfernen"
 
 #: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
 msgid "Remove stock item"
-msgstr "BestandsObjekt entfernen"
+msgstr "Lagerartikel entfernen"
 
 #: templates/js/translated/barcode.js:439
 msgid "Check Stock Items into Location"
-msgstr "BestandsObjekte in Lagerort buchen"
+msgstr "Lagerartikel in Lagerort buchen"
 
 #: templates/js/translated/barcode.js:443
 #: templates/js/translated/barcode.js:573
@@ -6880,19 +6932,19 @@ msgstr "Fehler bei Bestandsübertragung"
 
 #: templates/js/translated/barcode.js:507
 msgid "Stock Item already scanned"
-msgstr "BestandsObjekte bereits gescannt"
+msgstr "Lagerartikel bereits gescannt"
 
 #: templates/js/translated/barcode.js:511
 msgid "Stock Item already in this location"
-msgstr "BestandsObjekt besteht bereits in diesem Lagerort"
+msgstr "Lagerartikel besteht bereits in diesem Lagerort"
 
 #: templates/js/translated/barcode.js:518
 msgid "Added stock item"
-msgstr "BestandsObjekt hinzugefügt"
+msgstr "Lagerartikel hinzugefügt"
 
 #: templates/js/translated/barcode.js:525
 msgid "Barcode does not match Stock Item"
-msgstr "Barcode entspricht keinem BestandsObjekt"
+msgstr "Barcode entspricht keinem Lagerartikel"
 
 #: templates/js/translated/barcode.js:568
 msgid "Check Into Location"
@@ -6903,117 +6955,97 @@ msgid "Barcode does not match a valid location"
 msgstr "Barcode entspricht keinem Lagerort"
 
 #: templates/js/translated/bom.js:184
-#, fuzzy
-#| msgid "Remove part"
 msgid "Remove substitute part"
-msgstr "Teil entfernen"
+msgstr "Ersatzteil entfernen"
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
-#, fuzzy
-#| msgid "Are you sure you wish to cancel this build?"
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
-msgstr "Sind Sie sicher, dass sie diesen Bauauftrag abbrechen möchten?"
+msgstr "Sind Sie sicher, dass Sie dieses Ersatzteil entfernen möchten?"
 
-#: templates/js/translated/bom.js:243
-#, fuzzy
-#| msgid "Remove stock item"
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
-msgstr "BestandsObjekt entfernen"
+msgstr "Ersatzteil entfernen"
 
-#: templates/js/translated/bom.js:282
-#, fuzzy
-#| msgid "Add Supplier"
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
-msgstr "Zulieferer hinzufügen"
+msgstr "Ersatzteil hinzufügen"
 
-#: templates/js/translated/bom.js:283
-#, fuzzy
-#| msgid "Edit BOM Item"
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
-msgstr "Stücklisten-Position bearbeiten"
+msgstr "Stücklisten Ersatzteile bearbeiten"
 
-#: templates/js/translated/bom.js:402
-#, fuzzy
-#| msgid "Update Available"
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
-msgstr "Aktualisierung verfügbar"
+msgstr "Ersatzteile verfügbar"
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
-#, fuzzy
-#| msgid "Edit stock allocation"
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
-msgstr "Bestands-Zuordnung bearbeiten"
+msgstr "Varianten erlaubt"
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr "Unterbaugruppe öffnen"
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
-msgstr ""
+msgstr "Ersatzteile"
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr "Kaufpreisspanne"
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr "Durchschnittlicher Kaufpreis"
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr "Stückliste anzeigen"
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr "Aktionen"
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr "Stücklisten-Position kontrollieren"
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr "Diese Position wurde kontrolliert"
 
-#: templates/js/translated/bom.js:618
-#, fuzzy
-#| msgid "Edit supplier part"
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
-msgstr "Zuliefererteil bearbeiten"
+msgstr "Ersatzteile bearbeiten"
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr "Stücklisten-Position bearbeiten"
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr "Stücklisten-Position löschen"
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr "Keine Stücklisten-Position(en) gefunden"
 
-#: templates/js/translated/bom.js:772
-#, fuzzy
-#| msgid "Are you sure you want to delete this stock item?"
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
-msgstr "Sind Sie sicher, dass Sie dieses BestandsObjekt löschen wollen?"
+msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?"
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr "benötigtes Teil"
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Vom übergeordneten Element geteilt"
+msgstr "Geerbt von übergeordneter Stückliste"
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -7025,7 +7057,7 @@ msgstr "Bauauftrag erstellen"
 
 #: templates/js/translated/build.js:133
 msgid "Allocate stock items to this build output"
-msgstr ""
+msgstr "Lagerartikel zu diesem Endprodukt zuweisen"
 
 #: templates/js/translated/build.js:144
 msgid "Unallocate stock from build output"
@@ -7040,40 +7072,28 @@ msgid "Delete build output"
 msgstr "Endprodukt entfernen"
 
 #: templates/js/translated/build.js:184
-#, fuzzy
-#| msgid "Are you sure you wish to unallocate all stock for this build?"
 msgid "Are you sure you wish to unallocate stock items from this build?"
-msgstr "Sind Sie sicher, dass sie alle BestandsObjekt von diesem Bauauftrag entfernen möchten?"
+msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?"
 
 #: templates/js/translated/build.js:202
-#, fuzzy
-#| msgid "Allocate Stock Item"
 msgid "Unallocate Stock Items"
-msgstr "Lagerbestand zuweisen"
+msgstr "Lagerartikel zurücknehmen"
 
 #: templates/js/translated/build.js:220
-#, fuzzy
-#| msgid "Delete Build Output"
 msgid "Select Build Outputs"
-msgstr "Endprodukt entfernen"
+msgstr "Endprodukte auswählen"
 
 #: templates/js/translated/build.js:221
-#, fuzzy
-#| msgid "At least one line item must be selected"
 msgid "At least one build output must be selected"
-msgstr "Mindestens eine Position muss ausgewählt werden"
+msgstr "Mindestens ein Endprodukt muss ausgewählt werden"
 
 #: templates/js/translated/build.js:275
-#, fuzzy
-#| msgid "Build Output"
 msgid "Output"
 msgstr "Endprodukt"
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Completed Build Outputs"
 msgid "Complete Build Outputs"
-msgstr "Fertiggestellte Endprodukte"
+msgstr "Endprodukte fertigstellen"
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -7084,10 +7104,8 @@ msgid "Location not specified"
 msgstr "Standort nicht angegeben"
 
 #: templates/js/translated/build.js:603
-#, fuzzy
-#| msgid "No incomplete build outputs remain."
 msgid "No active build outputs found"
-msgstr "Keine unfertigen Endprodukte verbleibend."
+msgstr "Keine aktiven Endprodukte gefunden"
 
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
@@ -7109,7 +7127,7 @@ msgstr "Zuordnung entfernen"
 
 #: templates/js/translated/build.js:1107
 msgid "Substitute parts available"
-msgstr ""
+msgstr "Ersatzteile verfügbar"
 
 #: templates/js/translated/build.js:1124
 msgid "Quantity Per"
@@ -7122,7 +7140,7 @@ msgstr "Zugeordnet"
 
 #: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
 msgid "Build stock"
-msgstr "Lagerbestand bauen"
+msgstr "Bestand bauen"
 
 #: templates/js/translated/build.js:1194 templates/stock_table.html:52
 msgid "Order stock"
@@ -7130,17 +7148,12 @@ msgstr "Bestand bestellen"
 
 #: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
 msgid "Allocate stock"
-msgstr "Lagerbestand zuweisen"
+msgstr "Bestand zuweisen"
 
 #: templates/js/translated/build.js:1262
 msgid "Specify stock allocation quantity"
 msgstr "Anzahl für Bestandszuordnung eingeben"
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "Teile auswählen"
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr "Sie müssen mindestens ein Teil auswählen"
@@ -7155,7 +7168,7 @@ msgstr "Bestandszuordnung bestätigen"
 
 #: templates/js/translated/build.js:1378
 msgid "Allocate Stock Items to Build Order"
-msgstr "Lagerbestand für Bauauftrag zuweisen"
+msgstr "Lagerartikel für Bauauftrag zuweisen"
 
 #: templates/js/translated/build.js:1389
 msgid "No matching stock locations"
@@ -7169,8 +7182,8 @@ msgstr "Keine passenden Lagerbestände"
 msgid "No builds matching query"
 msgstr "Keine Bauaufträge passen zur Anfrage"
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr "Auswählen"
@@ -7195,7 +7208,7 @@ msgstr "Keine Teile zugeordnet zu"
 msgid "Add Manufacturer"
 msgstr "Hersteller hinzufügen"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr "Herstellerteil hinzufügen"
 
@@ -7207,87 +7220,87 @@ msgstr "Herstellerteil ändern"
 msgid "Delete Manufacturer Part"
 msgstr "Herstellerteil löschen"
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr "Zulieferer hinzufügen"
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr "Zuliefererteil hinzufügen"
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr "Zuliefererteil bearbeiten"
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr "Zuliefererteil entfernen"
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr "Firma bearbeiten"
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr "Neue Firma hinzufügen"
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr "Teile geliefert"
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr "Hersteller-Teile"
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr "Keine Firmeninformation gefunden"
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr "Die folgenden Herstellerteile werden gelöscht"
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr "Herstellerteile löschen"
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr "Keine Herstellerteile gefunden"
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr "Vorlagenteil"
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr "Baugruppe"
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr "Keine Parameter gefunden"
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr "Parameter bearbeiten"
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr "Parameter löschen"
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr "Parameter bearbeiten"
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr "Parameter löschen"
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr "Keine Zuliefererteile gefunden"
 
@@ -7343,10 +7356,8 @@ msgid "View operation not allowed"
 msgstr "Anzeigevorgang nicht erlaubt"
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Muss eine gültige Nummer sein"
+msgstr "Gib eine gültige Nummer ein"
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7373,14 +7384,9 @@ msgstr "JA"
 msgid "NO"
 msgstr "NEIN"
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr "BestandsObjekte auswählen"
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
-msgstr "BestandsObjekt(e) müssen ausgewählt sein bevor Labels gedruckt werden können"
+msgstr "Lagerartikel müssen ausgewählt sein bevor Labels gedruckt werden können"
 
 #: templates/js/translated/label.js:48 templates/js/translated/label.js:98
 #: templates/js/translated/label.js:153
@@ -7389,7 +7395,7 @@ msgstr "Keine Labels gefunden"
 
 #: templates/js/translated/label.js:49
 msgid "No labels found which match selected stock item(s)"
-msgstr "Keine Labels die zu BestandsObjekt(e) passen gefunden"
+msgstr "Keine Labels die zu Lagerartikel passen gefunden"
 
 #: templates/js/translated/label.js:80
 msgid "Select Stock Locations"
@@ -7413,7 +7419,7 @@ msgstr "Keine Labels zu den ausgewählten Teilen gefunden"
 
 #: templates/js/translated/label.js:228
 msgid "stock items selected"
-msgstr "BestandsObjekte ausgewählt"
+msgstr "Lagerartikel ausgewählt"
 
 #: templates/js/translated/label.js:236
 msgid "Select Label"
@@ -7599,13 +7605,11 @@ msgid "Total"
 msgstr "Summe"
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr "Stück-Preis"
 
 #: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
-#, fuzzy
-#| msgid "Total price"
 msgid "Total Price"
 msgstr "Gesamtpreis"
 
@@ -7655,7 +7659,7 @@ msgstr "Seriennummern zuweisen"
 
 #: templates/js/translated/order.js:1585
 msgid "Purchase stock"
-msgstr "Lagerbestand kaufen"
+msgstr "Bestand kaufen"
 
 #: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
 msgid "Calculate price"
@@ -7667,7 +7671,7 @@ msgstr "Position löschen "
 
 #: templates/js/translated/order.js:1719
 msgid "Allocate Stock Item"
-msgstr "Lagerbestand zuweisen"
+msgstr "Bestand zuweisen"
 
 #: templates/js/translated/order.js:1779
 msgid "Update Unit Price"
@@ -7677,328 +7681,246 @@ msgstr "Stückpreis aktualisieren"
 msgid "No matching line items"
 msgstr "Keine passenden Positionen gefunden"
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr "Teileigenschaften"
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr "Erstellungsoptionen für Teile"
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr "Einstellungen für Teilkopien"
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr "Zuliefereroptionen"
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr "Teil-Kategorie hinzufügen"
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr "Anfänglichen Bestand erstellen"
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr "Anfänglichen Bestand für dieses Teil erstellen"
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr "Start-Bestandsmenge"
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr "Menge des anfänglichen Bestands für dieses Teil angeben"
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr "Zielstandort auswählen"
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr "Kategorieparameter kopieren"
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr "Parametervorlagen aus der ausgewählten Bauteilkategorie kopieren"
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr "Zuliefererdaten hinzufügen"
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr "Erstelle ersten Lieferanten für dieses Teil"
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr "Bild kopieren"
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr "Bild vom Originalteil kopieren"
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr "Stückliste vom Originalteil kopieren"
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr "Parameter kopieren"
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr "Parameterdaten vom Originalteil kopieren"
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr "Übergeordnete Teilkategorie"
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr "Teil bearbeiten"
 
-#: templates/js/translated/part.js:334
-#, fuzzy
-#| msgid "Parts imported"
+#: templates/js/translated/part.js:335
 msgid "Part edited"
-msgstr "Teile importiert"
+msgstr "Teil bearbeitet"
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
-msgstr ""
+msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
-msgstr ""
+msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
-msgstr ""
+msgstr "Benachrichtigungen für dieses Teil abonnieren"
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
-msgstr ""
+msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet"
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr "Nachverfolgbares Teil"
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr "virtuelles Teil"
 
-#: templates/js/translated/part.js:456
-#, fuzzy
-#| msgid "Sub part"
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
-msgstr "Untergeordnetes Teil"
+msgstr "Abonnierter Teil"
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr "Verkäufliches Teil"
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr "Keine Varianten gefunden"
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr "Keine Teile gefunden"
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr "Keine Kategorie"
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr "Bestand niedrig"
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
-#, fuzzy
-#| msgid "Display list view"
 msgid "Display as list"
-msgstr "Listen-Ansicht"
+msgstr "Listenansicht"
 
-#: templates/js/translated/part.js:1044
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
-msgstr "Listen-Ansicht"
+msgstr "Rasteransicht"
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
-msgstr "Listen-Ansicht"
+msgstr "Baumansicht"
 
-#: templates/js/translated/part.js:1283
-#, fuzzy
-#| msgid "Set category"
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
-msgstr "Teil-Kategorie auswählen"
+msgstr "Abonnierte Kategorie"
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr "Pfad"
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr "Keine zur Anfrage passenden Testvorlagen"
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr "Testergebnis bearbeiten"
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr "Testergebnis löschen"
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr "Dieses Testergebnis ist für ein Hauptteil"
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr "Testergebnis-Vorlage bearbeiten"
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr "Testergebnis-Vorlage löschen"
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr "Keine ${human_name} Informationen gefunden"
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr "${human_name} bearbeiten"
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr "${human_name} löschen"
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr "Einzelpreis"
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr "Einzelpreisdifferenz"
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr "BestandsObjekt ausgewählt"
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr "Bericht-Vorlage auswählen"
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr "Test-Bericht-Vorlage auswählen"
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr "BestandsObjekt(e) müssen vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr "Keine Berichte gefunden"
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr "Keine Berichtsvorlagen für ausgewählte BestandsObjekt(e) gefunden"
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr "Bauauftrag auswählen"
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden"
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr "Teil muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden"
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr "Bestellungen auswählen"
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr "Bestellung muss vor dem Berichtsdruck ausgewählt werden"
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden"
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr "Aufträge auswählen"
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-
 #: templates/js/translated/stock.js:70
-#, fuzzy
-#| msgid "Serialize Stock"
 msgid "Serialize Stock Item"
-msgstr "Lagerbestand erfassen"
+msgstr "Lagerartikel serialisieren"
 
 #: templates/js/translated/stock.js:90
 msgid "Parent stock location"
 msgstr "Übergeordneter Lagerort"
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "Stock Location"
 msgid "New Stock Location"
-msgstr "Bestand-Lagerort"
+msgstr "Neuer Lagerstandort"
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Enter quantity of stock items"
 msgid "Enter initial quantity for this stock item"
-msgstr "Menge der BestandsObjekt eingeben"
+msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
 
 #: templates/js/translated/stock.js:195
-#, fuzzy
-#| msgid "Enter unique serial numbers (or leave blank)"
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)"
+msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Create new Stock Item"
 msgid "Created new stock item"
-msgstr "Neues BestandsObjekt hinzufügen"
+msgstr "Neuer Lagerartikel erstellt"
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Create new Stock Item"
 msgid "Created multiple stock items"
-msgstr "Neues BestandsObjekt hinzufügen"
+msgstr "Mehrere Lagerartikel erstellt"
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -8010,7 +7932,7 @@ msgstr "Einschließlich Unterstandorte"
 
 #: templates/js/translated/stock.js:402
 msgid "Include stock items in sublocations"
-msgstr "Bestand in untergeordneten Lagerorten einschließen"
+msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
 
 #: templates/js/translated/stock.js:444
 msgid "Transfer Stock"
@@ -8058,7 +7980,7 @@ msgstr "Bestandsanzahl angeben"
 
 #: templates/js/translated/stock.js:595
 msgid "You must select at least one available stock item"
-msgstr "Sie müssen mindestens einen Lagerbestand auswählen"
+msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
 
 #: templates/js/translated/stock.js:753
 msgid "PASS"
@@ -8090,7 +8012,7 @@ msgstr "In Arbeit"
 
 #: templates/js/translated/stock.js:976
 msgid "Installed in Stock Item"
-msgstr "In BestandsObjekt installiert"
+msgstr "In Lagerartikel installiert"
 
 #: templates/js/translated/stock.js:980
 msgid "Shipped to customer"
@@ -8106,46 +8028,46 @@ msgstr "Kein Lagerort gesetzt"
 
 #: templates/js/translated/stock.js:1148
 msgid "Stock item is in production"
-msgstr "BestandsObjekt wird produziert"
+msgstr "Lagerartikel wird produziert"
 
 #: templates/js/translated/stock.js:1153
 msgid "Stock item assigned to sales order"
-msgstr "BestandsObjekt wurde Auftrag zugewiesen"
+msgstr "Lagerartikel wurde Auftrag zugewiesen"
 
 #: templates/js/translated/stock.js:1156
 msgid "Stock item assigned to customer"
-msgstr "BestandsObjekt wurde Kunden zugewiesen"
+msgstr "Lagerartikel wurde Kunden zugewiesen"
 
 #: templates/js/translated/stock.js:1160
 msgid "Stock item has expired"
-msgstr "BestandsObjekt ist abgelaufen"
+msgstr "Lagerartikel ist abgelaufen"
 
 #: templates/js/translated/stock.js:1162
 msgid "Stock item will expire soon"
-msgstr "BestandsObjekt läuft demnächst ab"
+msgstr "Lagerartikel läuft demnächst ab"
 
 #: templates/js/translated/stock.js:1166
 msgid "Stock item has been allocated"
-msgstr "BestandsObjekt zugewiesen"
+msgstr "Lagerartikel zugewiesen"
 
 #: templates/js/translated/stock.js:1170
 msgid "Stock item has been installed in another item"
-msgstr "BestandsObjekt in anderem Element verbaut"
+msgstr "Lagerartikel in anderem Element verbaut"
 
 #: templates/js/translated/stock.js:1177
 msgid "Stock item has been rejected"
-msgstr "BestandsObjekt abgewiesen"
+msgstr "Lagerartikel abgewiesen"
 
 #: templates/js/translated/stock.js:1179
 msgid "Stock item is lost"
-msgstr "BestandsObjekt verloren"
+msgstr "Lagerartikel verloren"
 
 #: templates/js/translated/stock.js:1181
 msgid "Stock item is destroyed"
-msgstr "BestandsObjekt zerstört"
+msgstr "Lagerartikel zerstört"
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr "gelöscht"
 
@@ -8159,7 +8081,7 @@ msgstr "Zuliefererteil nicht angegeben"
 
 #: templates/js/translated/stock.js:1346
 msgid "No stock items matching query"
-msgstr "Keine zur Anfrage passenden BestandsObjekte"
+msgstr "Keine zur Anfrage passenden Lagerartikel"
 
 #: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
 msgid "items"
@@ -8193,10 +8115,6 @@ msgstr "Status Code muss ausgewählt werden"
 msgid "Invalid date"
 msgstr "Ungültiges Datum"
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Details"
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr "Standort nicht mehr vorhanden"
@@ -8211,7 +8129,7 @@ msgstr "Kunde existiert nicht mehr"
 
 #: templates/js/translated/stock.js:2000
 msgid "Stock item no longer exists"
-msgstr "Lagerbestand existiert nicht mehr"
+msgstr "Lagerartikel existiert nicht mehr"
 
 #: templates/js/translated/stock.js:2023
 msgid "Added"
@@ -8233,9 +8151,13 @@ msgstr "Tracking-Eintrag löschen"
 msgid "No installed items"
 msgstr "Keine installierten Elemente"
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr "Seriennummer"
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
-msgstr "Lagerbestand entfernen"
+msgstr "Lagerartikel entfernen"
 
 #: templates/js/translated/table_filters.js:56
 msgid "Trackable Part"
@@ -8253,180 +8175,180 @@ msgstr "überprüft"
 msgid "Allow Variant Stock"
 msgstr "Bestand an Varianten zulassen"
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr "Unter-Lagerorte einschließen"
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr "Lagerorte einschließen"
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr "Unterkategorien einschließen"
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
-msgstr ""
+msgstr "Abonniert"
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr "Hat Seriennummer"
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr "Seriennummer >="
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr "Seriennummer größer oder gleich"
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr "Seriennummer <="
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr "Seriennummern kleiner oder gleich"
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr "Seriennummer"
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr "Losnummer"
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr "Aktive Teile"
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr "Bestand aktiver Teile anzeigen"
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr "Teil ist eine Baugruppe"
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr "Ist zugeordnet"
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr "Teil wurde zugeordnet"
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr "Bestand in Unter-Lagerorten einschließen"
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
-msgstr "Zeige aufgebrauchte BestandsObjekte"
+msgstr "Zeige aufgebrauchte Lagerartikel"
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr "Zeige Objekte welche im Lager sind"
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr "In Arbeit"
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr "Elemente, die in Produktion sind, anzeigen"
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr "Varianten einschließen"
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
-msgstr "BestandsObjekte für Teil-Varianten einschließen"
+msgstr "Lagerartikel für Teil-Varianten einschließen"
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr "Installiert"
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
-msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen"
+msgstr "Lagerartikel, die in anderen Elementen verbaut sind, anzeigen"
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr "zeige zu Kunden zugeordnete Einträge"
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr "Status"
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr "Hat Einkaufspreis"
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr "Bestand mit Einkaufspreis anzeigen"
 
-#: templates/js/translated/table_filters.js:242
-msgid "Show stock items which have expired"
-msgstr "Zeige abgelaufene BestandsObjekte"
-
 #: templates/js/translated/table_filters.js:248
+msgid "Show stock items which have expired"
+msgstr "Zeige abgelaufene Lagerartikel"
+
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr "Bestand, der bald ablaufen, anzeigen"
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr "Bauauftrags-Status"
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr "Bestellstatus"
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr "ausstehend"
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr "Teile in Unterkategorien einschließen"
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr "Hat IPN"
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr "Teil hat Interne Teilenummer"
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr "Aktive Teile anzeigen"
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
-msgstr "verfügbarer Lagerbestand"
+msgstr "verfügbarer Bestand"
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr "Käuflich"
 
@@ -8508,10 +8430,8 @@ msgid "About InvenTree"
 msgstr "Über InvenTree"
 
 #: templates/navbar_demo.html:5
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree demo mode"
-msgstr "InvenTree Instanzname"
+msgstr "InvenTree Demo-Modus"
 
 #: templates/qr_code.html:11
 msgid "QR data not provided"
@@ -8519,11 +8439,11 @@ msgstr "QR Daten nicht angegeben"
 
 #: templates/registration/logged_out.html:6
 msgid "You were logged out successfully."
-msgstr ""
+msgstr "Sie wurden erfolgreich ausgeloggt."
 
 #: templates/registration/logged_out.html:8
 msgid "Log in again"
-msgstr ""
+msgstr "Erneut einloggen"
 
 #: templates/stats.html:9
 msgid "Server"
@@ -8595,19 +8515,19 @@ msgstr "Bestands-Einstellungen "
 
 #: templates/stock_table.html:48
 msgid "Add to selected stock items"
-msgstr "Zu ausgewählten BestandsObjekten hinzufügen"
+msgstr "Zu ausgewählten Lagerartikeln hinzufügen"
 
 #: templates/stock_table.html:49
 msgid "Remove from selected stock items"
-msgstr "Von ausgewählten BestandsObjekten entfernen"
+msgstr "Von ausgewählten Lagerartikeln entfernen"
 
 #: templates/stock_table.html:50
 msgid "Stocktake selected stock items"
-msgstr "Inventur für gewählte BestandsObjekte"
+msgstr "Inventur für gewählte Lagerartikel"
 
 #: templates/stock_table.html:51
 msgid "Move selected stock items"
-msgstr "Ausgewählte BestandsObjekte verschieben"
+msgstr "Ausgewählte Lagerartikel verschieben"
 
 #: templates/stock_table.html:51
 msgid "Move stock"
@@ -8693,335 +8613,3 @@ msgstr "Berechtigungen Einträge zu ändern"
 msgid "Permission to delete items"
 msgstr "Berechtigung Einträge zu löschen"
 
-#~ msgid "Matching build order does not exist"
-#~ msgstr "Es existiert kein passender Build-Auftrag"
-
-#~ msgid "Build Order reference"
-#~ msgstr "Bauauftrags-Referenz"
-
-#~ msgid "Order target date"
-#~ msgstr "geplantes Bestelldatum"
-
-#~ msgid "Number of items to build"
-#~ msgstr "Anzahl der zu bauenden Teile"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "Aufhebung der BestandsZuordnung bestätigen"
-
-#~ msgid "Build output stock status"
-#~ msgstr "Bestands-Status der Endprodukte"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "Bauauftrag nicht fertiggestellt"
-
-#~ msgid "Confirm completion with incomplete stock allocation"
-#~ msgstr "Fertigstellung mit nicht kompletter Bestandszuordnung bestätigen"
-
-#~ msgid "Confirm build completion"
-#~ msgstr "Bauauftrag-Fertigstellung bestätigen"
-
-#~ msgid "Admin view"
-#~ msgstr "Admin"
-
-#~ msgid "Print Build Order"
-#~ msgstr "Bauauftrag drucken"
-
-#~ msgid "Progress"
-#~ msgstr "Fortschritt"
-
-#~ msgid "Stock allocation is complete for this output"
-#~ msgstr "Lagerzuordnung für dieses Endprodukt ist vollständig"
-
-#~ msgid "Stock allocation is incomplete"
-#~ msgstr "Bestandszuordnung ist nicht vollständig"
-
-#~ msgid "tracked parts have not been fully allocated"
-#~ msgstr "verfolgte Teile wurden nicht vollständig zugewiesen"
-
-#~ msgid "The following items will be created"
-#~ msgstr "Die folgenden Objekte werden erstellt"
-
-#~ msgid "Create New Output"
-#~ msgstr "Neues Endprodukt anlegen"
-
-#~ msgid "Create a new build output"
-#~ msgstr "Neues Endprodukt anlegen"
-
-#~ msgid "Create a new build output using the button above"
-#~ msgstr "Neues Endprodukt mit der Schaltfläche oberhalb anlegen"
-
-#~ msgid "Alter the quantity of stock allocated to the build output"
-#~ msgstr "Anzahl des zugeordneten Bestands für die Endprodukte ändern"
-
-#~ msgid "Build Order Details"
-#~ msgstr "Bauauftrag-details"
-
-#~ msgid "Build Outputs"
-#~ msgstr "Endprodukte"
-
-#~ msgid "Child Builds"
-#~ msgstr "Unter-Endprodukte"
-
-#~ msgid "Build Order Notes"
-#~ msgstr "Bauauftrag-Notizen"
-
-#~ msgid "All incomplete stock allocations will be removed from the build"
-#~ msgstr "Alle unvollständigen Bestandszuordnungen werden vom Endprodukt entfernt"
-
-#~ msgid "Complete Build Output"
-#~ msgstr "Endprodukt fertigstellen"
-
-#~ msgid "Invalid stock status value selected"
-#~ msgstr "Ungültiger Lagerbestands-Status ausgewählt"
-
-#~ msgid "Quantity to complete cannot exceed build output quantity"
-#~ msgstr "Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl überschreiten"
-
-#~ msgid "Confirm completion of incomplete build"
-#~ msgstr "Endprodukt-Fertigstellung bestätigen"
-
-#~ msgid "Build output completed"
-#~ msgstr "Endprodukt fertiggestellt"
-
-#~ msgid "Enable build"
-#~ msgstr "Bauaufträge aktivieren"
-
-#~ msgid "Enable build functionality in InvenTree interface"
-#~ msgstr "Bau-Funktionalität in InvenTree aktivieren"
-
-#~ msgid "Enable buy"
-#~ msgstr "Kaufen aktivieren"
-
-#~ msgid "Enable buy functionality in InvenTree interface"
-#~ msgstr "Kauf-Funktionalität in InvenTree aktivieren"
-
-#~ msgid "Enable sell"
-#~ msgstr "Verkauf aktivieren"
-
-#~ msgid "Enable sell functionality in InvenTree interface"
-#~ msgstr "Verkaufs-Funktionalität in InvenTree aktivieren"
-
-#~ msgid "Enable stock"
-#~ msgstr "Lagerbestand aktivieren"
-
-#~ msgid "Enable SO"
-#~ msgstr "Aufträge aktivieren"
-
-#~ msgid "Enable PO"
-#~ msgstr "Bestellungen aktivieren"
-
-#~ msgid "Default"
-#~ msgstr "Standard"
-
-#~ msgid "Current value"
-#~ msgstr "Aktueller Wert"
-
-#~ msgid "Change Setting"
-#~ msgstr "Einstellungen ändern"
-
-#~ msgid "Supplied value is not allowed"
-#~ msgstr "Angegebener Wert nicht erlaubt"
-
-#~ msgid "Supplied value must be a boolean"
-#~ msgstr "Angegebener Wert muss ein Wahrheitswert sein"
-
-#~ msgid "Change User Setting"
-#~ msgstr "Benutzereinstellungen ändern"
-
-#~ msgid "Company Details"
-#~ msgstr "Firmendetails"
-
-#~ msgid "Manufacturer Part Details"
-#~ msgstr "Herstellerteil-Details"
-
-#~ msgid "Manufacturer Part Stock"
-#~ msgstr "Herstellerteil-Bestand"
-
-#~ msgid "Manufacturer Part Orders"
-#~ msgstr "Herstellerteil-Bestellungen"
-
-#~ msgid "Manufactured Parts"
-#~ msgstr "Hergestellte Teile"
-
-#~ msgid "Supplier Part Details"
-#~ msgstr "Zuliefererteil Details"
-
-#~ msgid "Print"
-#~ msgstr "Drucken"
-
-#~ msgid "Purchase Order Details"
-#~ msgstr "Bestellungs-Details"
-
-#~ msgid "Purchase Order Attachments"
-#~ msgstr "Bestellungs-Anhänge"
-
-#~ msgid "Received Stock Items"
-#~ msgstr "BestandsObjekte empfangen"
-
-#~ msgid "Sales Order Details"
-#~ msgstr "Auftragsdetails"
-
-#~ msgid "Sales Order Line Items"
-#~ msgstr "Auftragspositionen"
-
-#~ msgid "Order Items"
-#~ msgstr "Auftragspositionen"
-
-#~ msgid "Sales Order Attachments"
-#~ msgstr "Auftrags-Anhänge"
-
-#~ msgid "Remove selected BOM items"
-#~ msgstr "Ausgewählte Stücklistenpositionen entfernen"
-
-#~ msgid "Import BOM data"
-#~ msgstr "Stückliste importieren"
-
-#~ msgid "Copy BOM from parent part"
-#~ msgstr "Stückliste von übergeordnetem Teil kopieren"
-
-#~ msgid "Finish Editing"
-#~ msgstr "Bearbeitung beenden"
-
-#~ msgid "Edit BOM"
-#~ msgstr "Stückliste bearbeiten"
-
-#~ msgid "Validate Bill of Materials"
-#~ msgstr "Stückliste kontrollieren"
-
-#~ msgid "Return To BOM"
-#~ msgstr "Zurück zur Stückliste"
-
-#~ msgid "All parts"
-#~ msgstr "Alle Teile"
-
-#~ msgid "Category Details"
-#~ msgstr "Kategorie-Details"
-
-#~ msgid "View list display"
-#~ msgstr "Listenansicht anzeigen"
-
-#~ msgid "View grid display"
-#~ msgstr "Rasteransicht anzeigen"
-
-#~ msgid "Import Parts"
-#~ msgstr "Teile importieren"
-
-#~ msgid "New sales order"
-#~ msgstr "Neuer Auftrag"
-
-#~ msgid "New Order"
-#~ msgstr "Neue Bestellung"
-
-#~ msgid "Start New Build"
-#~ msgstr "Neuen Bauauftrag beginnen"
-
-#~ msgid "Variants"
-#~ msgstr "Varianten"
-
-#~ msgid "Used In"
-#~ msgstr "Benutzt in"
-
-#~ msgid "Prices"
-#~ msgstr "Preise"
-
-#~ msgid "Test Templates"
-#~ msgstr "Testvorlagen"
-
-#~ msgid "Star this part"
-#~ msgstr "Teil favorisieren"
-
-#~ msgid "Hide Part Details"
-#~ msgstr "Teildetails ausblenden"
-
-#~ msgid "Select test report template"
-#~ msgstr "Test Bericht Vorlage auswählen"
-
-#~ msgid "Stock Item Details"
-#~ msgstr "BestandsObjekt-Details"
-
-#~ msgid "Save"
-#~ msgstr "Speichern"
-
-#~ msgid "All stock items"
-#~ msgstr "Alle BestandsObjekte"
-
-#~ msgid "Location Details"
-#~ msgstr "Lagerort-Details"
-
-#~ msgid "Location Path"
-#~ msgstr "Lagerort-Pfad"
-
-#~ msgid "Location Description"
-#~ msgstr "Lagerort-Beschreibung"
-
-#~ msgid "Stock Details"
-#~ msgstr "Objekt-Details"
-
-#~ msgid "Create new location"
-#~ msgstr "Neuen Lagerort anlegen"
-
-#~ msgid "Stock Item Tracking"
-#~ msgstr "BestandsObjekt-Verfolgung"
-
-#~ msgid "History"
-#~ msgstr "Geschichte"
-
-#~ msgid "Child Items"
-#~ msgstr "Kindobjekte"
-
-#~ msgid "Children"
-#~ msgstr "Kinder"
-
-#~ msgid "Remove item"
-#~ msgstr "Teil entfernen"
-
-#~ msgid "Starred Parts"
-#~ msgstr "Teilfavoriten"
-
-#~ msgid "Setting"
-#~ msgstr "Einstellungen"
-
-#~ msgid "Account"
-#~ msgstr "Konto"
-
-#~ msgid "Home Page"
-#~ msgstr "Startseite"
-
-#~ msgid "Labels"
-#~ msgstr "Labels"
-
-#~ msgid "Reports"
-#~ msgstr "Berichte"
-
-#~ msgid "Forms"
-#~ msgstr "Formulare"
-
-#~ msgid "InvenTree Settings"
-#~ msgstr "InvenTree-Einstellungen"
-
-#~ msgid "Barcodes"
-#~ msgstr "Barcodes"
-
-#~ msgid "Currencies"
-#~ msgstr "Währungen"
-
-#~ msgid "Reporting"
-#~ msgstr "Berichte"
-
-#~ msgid "Categories"
-#~ msgstr "Kategorien"
-
-#~ msgid "Part Options"
-#~ msgstr "Teil-Optionen"
-
-#~ msgid "Form Settings"
-#~ msgstr "Formulareinstellungen"
-
-#~ msgid "Starred part"
-#~ msgstr "Favoritenteil"
-
-#~ msgid "Starred"
-#~ msgstr "Favorit"
-
-#~ msgid "Toggle navigation"
-#~ msgstr "Navigation ein-/ausklappen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 5e4134264a..b68d49ba34 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Greek\n"
 "Language: el_GR\n"
@@ -132,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -185,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -216,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4248,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4334,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4415,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4618,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4631,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4651,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4691,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4725,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4795,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4817,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4837,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4860,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5026,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5078,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5096,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5363,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5441,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5562,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5750,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5782,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6029,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6052,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6099,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6107,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6228,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6245,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6269,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6375,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6498,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6551,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6726,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6922,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6955,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6981,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6993,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7157,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7383,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7459,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7903,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7951,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7991,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8011,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8448,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 5162bf6bc2..cf4017d955 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -133,7 +133,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -174,8 +174,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -186,18 +187,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -217,83 +219,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -418,7 +420,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -548,19 +550,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -568,8 +569,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -622,8 +623,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -636,7 +639,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -660,7 +663,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -670,15 +673,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -797,16 +800,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -915,7 +925,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1066,16 +1076,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1177,8 +1187,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1197,7 +1207,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1217,7 +1227,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1276,10 +1286,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1300,32 +1314,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1337,7 +1355,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1357,6 +1375,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1542,7 +1572,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1608,7 +1638,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1616,9 +1646,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1627,7 +1657,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1644,7 +1674,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1654,8 +1684,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2131,7 +2161,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2139,19 +2169,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2169,13 +2201,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2196,7 +2228,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2240,8 +2272,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2299,25 +2331,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2341,9 +2373,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2352,8 +2384,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2370,23 +2403,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2418,7 +2451,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2444,7 +2477,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2483,7 +2516,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2493,7 +2526,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2504,7 +2539,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2512,8 +2547,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2541,7 +2576,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2550,11 +2585,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2570,11 +2608,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2600,13 +2640,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2628,12 +2668,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2644,27 +2684,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2680,7 +2722,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2692,20 +2734,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2742,7 +2800,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2750,11 +2808,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2767,11 +2825,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2781,13 +2842,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2813,24 +2886,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2887,7 +2960,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3318,19 +3391,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3391,6 +3464,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3410,10 +3519,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3701,23 +3806,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3746,10 +3847,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3814,7 +3917,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3823,7 +3926,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3836,7 +3940,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3893,9 +3997,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3943,7 +4047,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3960,8 +4064,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3969,7 +4073,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3977,7 +4081,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4039,9 +4143,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4073,10 +4177,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4084,7 +4188,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4155,7 +4259,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4171,23 +4275,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4249,6 +4357,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4335,7 +4444,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4408,7 +4521,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4416,112 +4529,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4619,10 +4740,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4632,11 +4753,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4652,12 +4773,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4692,7 +4813,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4726,6 +4847,18 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
@@ -4796,7 +4929,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4818,7 +4951,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4838,9 +4971,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4861,136 +4994,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5027,51 +5147,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5079,16 +5199,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5097,42 +5212,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5364,7 +5470,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5442,6 +5548,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5563,13 +5670,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5751,17 +5858,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5783,6 +5883,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6030,6 +6142,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6053,11 +6166,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6100,6 +6213,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6108,10 +6274,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6229,6 +6391,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6246,10 +6412,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6270,20 +6432,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6499,13 +6653,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6552,6 +6706,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6727,92 +6960,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6923,11 +7156,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6956,8 +7184,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6982,7 +7210,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6994,87 +7222,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7158,11 +7386,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7384,7 +7607,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7460,277 +7683,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7904,7 +8069,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7952,10 +8117,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7992,6 +8153,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8012,180 +8177,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 351f5a3483..cf4528aca5 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,71 +2,71 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
-"Language-Team: Spanish\n"
-"Language: es_ES\n"
+"Language-Team: Spanish, Mexico\n"
+"Language: es_MX\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Crowdin-Project: inventree\n"
 "X-Crowdin-Project-ID: 452300\n"
-"X-Crowdin-Language: es-ES\n"
+"X-Crowdin-Language: es-MX\n"
 "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
 "X-Crowdin-File-ID: 138\n"
 
 #: InvenTree/api.py:64
 msgid "API endpoint not found"
-msgstr "endpoint API no encontrado"
+msgstr ""
 
 #: InvenTree/api.py:110
 msgid "No action specified"
-msgstr "No se especificó ninguna acción"
+msgstr ""
 
 #: InvenTree/api.py:124
 msgid "No matching action found"
-msgstr "No se encontró ninguna acción coincidente"
+msgstr ""
 
 #: InvenTree/fields.py:100
 msgid "Enter date"
-msgstr "Ingrese la fecha"
+msgstr ""
 
 #: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
 #: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
 #: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
 #: templates/js/translated/forms.js:594
 msgid "Confirm"
-msgstr "Confirmar"
+msgstr ""
 
 #: InvenTree/forms.py:136
 msgid "Confirm delete"
-msgstr "Confirmar eliminación"
+msgstr ""
 
 #: InvenTree/forms.py:137
 msgid "Confirm item deletion"
-msgstr "Confirmar borrado de artículo"
+msgstr ""
 
 #: InvenTree/forms.py:168
 msgid "Enter password"
-msgstr "Introduzca contraseña"
+msgstr ""
 
 #: InvenTree/forms.py:169
 msgid "Enter new password"
-msgstr "Ingrese su nueva contraseña"
+msgstr ""
 
 #: InvenTree/forms.py:176
 msgid "Confirm password"
-msgstr "Confirmar la contraseña"
+msgstr ""
 
 #: InvenTree/forms.py:177
 msgid "Confirm new password"
-msgstr "Confirmar contraseña nueva"
+msgstr ""
 
 #: InvenTree/forms.py:209
 msgid "Select Category"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: InvenTree/forms.py:230
 msgid "Email (again)"
@@ -83,101 +83,102 @@ msgstr ""
 #: InvenTree/helpers.py:430
 #, python-brace-format
 msgid "Duplicate serial: {n}"
-msgstr "Número de serie duplicado: {n}"
+msgstr ""
 
 #: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
 #: stock/views.py:1264
 msgid "Invalid quantity provided"
-msgstr "Cantidad proporcionada no válida"
+msgstr ""
 
 #: InvenTree/helpers.py:440
 msgid "Empty serial number string"
-msgstr "No se ha proporcionado un número de serie"
+msgstr ""
 
 #: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
 #: InvenTree/helpers.py:493
 #, python-brace-format
 msgid "Invalid group: {g}"
-msgstr "Grupo no válido: un {g}"
+msgstr ""
 
 #: InvenTree/helpers.py:498
 #, python-brace-format
 msgid "Duplicate serial: {g}"
-msgstr "Número de serie duplicado: {g}"
+msgstr ""
 
 #: InvenTree/helpers.py:506
 msgid "No serial numbers found"
-msgstr "Numeros de serie no encontrados"
+msgstr ""
 
 #: InvenTree/helpers.py:510
 #, python-brace-format
 msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr "El número de números de serie únicos ({s}) debe coincidir con la cantidad ({q})"
+msgstr ""
 
 #: InvenTree/models.py:109 stock/models.py:1874
 msgid "Attachment"
-msgstr "Archivo adjunto"
+msgstr ""
 
 #: InvenTree/models.py:110
 msgid "Select file to attach"
-msgstr "Seleccionar archivo para adjuntar"
+msgstr ""
 
 #: InvenTree/models.py:112 templates/js/translated/attachment.js:91
 msgid "Comment"
-msgstr "Comentario"
+msgstr ""
 
 #: InvenTree/models.py:112
 msgid "File comment"
-msgstr "Comentario del archivo"
+msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
-msgstr "Usuario"
+msgstr ""
 
 #: InvenTree/models.py:122
 msgid "upload date"
-msgstr "fecha de subida"
+msgstr ""
 
 #: InvenTree/models.py:142
 msgid "Filename must not be empty"
-msgstr "El nombre del archivo no debe estar vacío"
+msgstr ""
 
 #: InvenTree/models.py:165
 msgid "Invalid attachment directory"
-msgstr "Directorio de archivos adjuntos no válido"
+msgstr ""
 
 #: InvenTree/models.py:175
 #, python-brace-format
 msgid "Filename contains illegal character '{c}'"
-msgstr "El nombre del archivo contiene el carácter ilegal '{c}'"
+msgstr ""
 
 #: InvenTree/models.py:178
 msgid "Filename missing extension"
-msgstr "Falta el nombre de extensión del archivo"
+msgstr ""
 
 #: InvenTree/models.py:185
 msgid "Attachment with this filename already exists"
-msgstr "Ya existe un archivo adjunto con este nombre"
+msgstr ""
 
 #: InvenTree/models.py:192
 msgid "Error renaming file"
-msgstr "Error al cambiar el nombre del archivo"
+msgstr ""
 
 #: InvenTree/models.py:227
 msgid "Invalid choice"
-msgstr "Selección no válida"
+msgstr ""
 
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
-msgstr "Nombre"
+msgstr ""
 
 #: InvenTree/models.py:250 build/models.py:207
 #: build/templates/build/detail.html:25 company/models.py:354
@@ -185,361 +186,362 @@ msgstr "Nombre"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
-msgstr "Descripción"
+msgstr ""
 
 #: InvenTree/models.py:251
 msgid "Description (optional)"
-msgstr "Descripción (opcional)"
+msgstr ""
 
 #: InvenTree/models.py:259
 msgid "parent"
-msgstr "padre"
+msgstr ""
 
 #: InvenTree/serializers.py:62 part/models.py:2674
 msgid "Must be a valid number"
-msgstr "Debe ser un numero valido"
+msgstr ""
 
 #: InvenTree/serializers.py:251
 msgid "Filename"
-msgstr "Nombre de Archivo"
-
-#: InvenTree/settings.py:663
-msgid "German"
-msgstr "Alemán"
+msgstr ""
 
 #: InvenTree/settings.py:664
-msgid "Greek"
-msgstr "Griego"
+msgid "German"
+msgstr ""
 
 #: InvenTree/settings.py:665
-msgid "English"
-msgstr "Inglés"
+msgid "Greek"
+msgstr ""
 
 #: InvenTree/settings.py:666
-msgid "Spanish"
-msgstr "Español"
+msgid "English"
+msgstr ""
 
 #: InvenTree/settings.py:667
-msgid "Spanish (Mexican)"
+msgid "Spanish"
 msgstr ""
 
 #: InvenTree/settings.py:668
-msgid "French"
-msgstr "Francés"
+msgid "Spanish (Mexican)"
+msgstr ""
 
 #: InvenTree/settings.py:669
-msgid "Hebrew"
-msgstr "Hebreo"
+msgid "French"
+msgstr ""
 
 #: InvenTree/settings.py:670
-msgid "Italian"
-msgstr "Italiano"
+msgid "Hebrew"
+msgstr ""
 
 #: InvenTree/settings.py:671
-msgid "Japanese"
-msgstr "Japonés"
+msgid "Italian"
+msgstr ""
 
 #: InvenTree/settings.py:672
-msgid "Korean"
-msgstr "Coreano"
+msgid "Japanese"
+msgstr ""
 
 #: InvenTree/settings.py:673
-msgid "Dutch"
-msgstr "Holandés"
+msgid "Korean"
+msgstr ""
 
 #: InvenTree/settings.py:674
-msgid "Norwegian"
-msgstr "Noruego"
+msgid "Dutch"
+msgstr ""
 
 #: InvenTree/settings.py:675
-msgid "Polish"
-msgstr "Polaco"
+msgid "Norwegian"
+msgstr ""
 
 #: InvenTree/settings.py:676
-msgid "Portugese"
+msgid "Polish"
 msgstr ""
 
 #: InvenTree/settings.py:677
-msgid "Russian"
-msgstr "Ruso"
+msgid "Portugese"
+msgstr ""
 
 #: InvenTree/settings.py:678
-msgid "Swedish"
-msgstr "Sueco"
+msgid "Russian"
+msgstr ""
 
 #: InvenTree/settings.py:679
-msgid "Thai"
-msgstr "Tailandés"
+msgid "Swedish"
+msgstr ""
 
 #: InvenTree/settings.py:680
-msgid "Turkish"
-msgstr "Turco"
+msgid "Thai"
+msgstr ""
 
 #: InvenTree/settings.py:681
-msgid "Vietnamese"
-msgstr "Vietnamita"
+msgid "Turkish"
+msgstr ""
 
 #: InvenTree/settings.py:682
+msgid "Vietnamese"
+msgstr ""
+
+#: InvenTree/settings.py:683
 msgid "Chinese"
-msgstr "Chino"
+msgstr ""
 
 #: InvenTree/status.py:94
 msgid "Background worker check failed"
-msgstr "Falló la comprobación en segundo plano del worker"
+msgstr ""
 
 #: InvenTree/status.py:98
 msgid "Email backend not configured"
-msgstr "No se ha configurado el backend de correo"
+msgstr ""
 
 #: InvenTree/status.py:101
 msgid "InvenTree system health checks failed"
-msgstr "Las comprobaciones de estado del sistema InvenTree fallaron"
+msgstr ""
 
 #: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
 #: InvenTree/status_codes.py:311
 msgid "Pending"
-msgstr "Pendiente"
+msgstr ""
 
 #: InvenTree/status_codes.py:102
 msgid "Placed"
-msgstr "Colocado"
+msgstr ""
 
 #: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
 msgid "Complete"
-msgstr "Terminado"
+msgstr ""
 
 #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
 #: InvenTree/status_codes.py:313
 msgid "Cancelled"
-msgstr "Cancelado"
+msgstr ""
 
 #: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
 #: InvenTree/status_codes.py:187
 msgid "Lost"
-msgstr "Perdida"
+msgstr ""
 
 #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
 #: InvenTree/status_codes.py:189
 msgid "Returned"
-msgstr "Devuelto"
+msgstr ""
 
 #: InvenTree/status_codes.py:143
 #: order/templates/order/sales_order_base.html:147
 msgid "Shipped"
-msgstr "Enviado"
+msgstr ""
 
 #: InvenTree/status_codes.py:183
 msgid "OK"
-msgstr "OK"
+msgstr ""
 
 #: InvenTree/status_codes.py:184
 msgid "Attention needed"
-msgstr "Atención necesaria"
+msgstr ""
 
 #: InvenTree/status_codes.py:185
 msgid "Damaged"
-msgstr "Dañado"
+msgstr ""
 
 #: InvenTree/status_codes.py:186
 msgid "Destroyed"
-msgstr "Destruido"
+msgstr ""
 
 #: InvenTree/status_codes.py:188
 msgid "Rejected"
-msgstr "Rechazado"
+msgstr ""
 
 #: InvenTree/status_codes.py:269
 msgid "Legacy stock tracking entry"
-msgstr "Entrada antigua de rastreo de stock"
+msgstr ""
 
 #: InvenTree/status_codes.py:271
 msgid "Stock item created"
-msgstr "Artículo de stock creado"
+msgstr ""
 
 #: InvenTree/status_codes.py:273
 msgid "Edited stock item"
-msgstr "Elemento de stock editado"
+msgstr ""
 
 #: InvenTree/status_codes.py:274
 msgid "Assigned serial number"
-msgstr "Número de serie asignado"
+msgstr ""
 
 #: InvenTree/status_codes.py:276
 msgid "Stock counted"
-msgstr "Stock contado"
+msgstr ""
 
 #: InvenTree/status_codes.py:277
 msgid "Stock manually added"
-msgstr "Stock añadido manualmente"
+msgstr ""
 
 #: InvenTree/status_codes.py:278
 msgid "Stock manually removed"
-msgstr "Stock eliminado manualmente"
+msgstr ""
 
 #: InvenTree/status_codes.py:280
 msgid "Location changed"
-msgstr "Ubicación cambiada"
+msgstr ""
 
 #: InvenTree/status_codes.py:282
 msgid "Installed into assembly"
-msgstr "Instalado en el ensamblaje"
+msgstr ""
 
 #: InvenTree/status_codes.py:283
 msgid "Removed from assembly"
-msgstr "Retirado del ensamblaje"
+msgstr ""
 
 #: InvenTree/status_codes.py:285
 msgid "Installed component item"
-msgstr "Artículo del componente instalado"
+msgstr ""
 
 #: InvenTree/status_codes.py:286
 msgid "Removed component item"
-msgstr "Elemento de componente eliminado"
+msgstr ""
 
 #: InvenTree/status_codes.py:288
 msgid "Split from parent item"
-msgstr "Separar del elemento principal"
+msgstr ""
 
 #: InvenTree/status_codes.py:289
 msgid "Split child item"
-msgstr "Dividir elemento secundario"
+msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
-msgstr "Enviar al cliente"
+msgstr ""
 
 #: InvenTree/status_codes.py:292
 msgid "Returned from customer"
-msgstr "Devolución del cliente"
+msgstr ""
 
 #: InvenTree/status_codes.py:294
 msgid "Build order output created"
-msgstr "Trabajo de ensamblaje creado"
+msgstr ""
 
 #: InvenTree/status_codes.py:295
 msgid "Build order output completed"
-msgstr "Construir orden de salida completado"
+msgstr ""
 
 #: InvenTree/status_codes.py:297
 msgid "Received against purchase order"
-msgstr "Recibido contra la orden de compra"
+msgstr ""
 
 #: InvenTree/status_codes.py:312
 msgid "Production"
-msgstr "Producción"
+msgstr ""
 
 #: InvenTree/validators.py:23
 msgid "Not a valid currency code"
-msgstr "No es un código de moneda válido"
+msgstr ""
 
 #: InvenTree/validators.py:51
 msgid "Invalid character in part name"
-msgstr "Carácter no válido en el nombre del artículo"
+msgstr ""
 
 #: InvenTree/validators.py:64
 #, python-brace-format
 msgid "IPN must match regex pattern {pat}"
-msgstr "El IPN debe coincidir con la expresión regular {pat}"
+msgstr ""
 
 #: InvenTree/validators.py:78 InvenTree/validators.py:92
 #: InvenTree/validators.py:106
 #, python-brace-format
 msgid "Reference must match pattern {pattern}"
-msgstr "La referencia debe coincidir con la expresión regular {pattern}"
+msgstr ""
 
 #: InvenTree/validators.py:114
 #, python-brace-format
 msgid "Illegal character in name ({x})"
-msgstr "Carácter ilegal en el nombre ({x})"
+msgstr ""
 
 #: InvenTree/validators.py:133 InvenTree/validators.py:149
 msgid "Overage value must not be negative"
-msgstr "El valor excedente no debe ser negativo"
+msgstr ""
 
 #: InvenTree/validators.py:151
 msgid "Overage must not exceed 100%"
-msgstr "El excedente no debe superar el 100%"
+msgstr ""
 
 #: InvenTree/validators.py:158
 msgid "Overage must be an integer value or a percentage"
-msgstr "El excedente debe ser un valor entero o un porcentaje"
+msgstr ""
 
 #: InvenTree/views.py:536
 msgid "Delete Item"
-msgstr "Eliminar elemento"
+msgstr ""
 
 #: InvenTree/views.py:585
 msgid "Check box to confirm item deletion"
-msgstr "Marque la casilla para confirmar la eliminación del artículo"
+msgstr ""
 
 #: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
 msgid "Edit User Information"
-msgstr "Editar datos del usuario"
+msgstr ""
 
 #: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
 msgid "Set Password"
-msgstr "Configurar Contraseña"
+msgstr ""
 
 #: InvenTree/views.py:630
 msgid "Password fields must match"
-msgstr "Los campos de contraseña deben coincidir"
+msgstr ""
 
 #: InvenTree/views.py:863 templates/navbar.html:101
 msgid "System Information"
-msgstr "Información del sistema"
+msgstr ""
 
 #: barcodes/api.py:53 barcodes/api.py:150
 msgid "Must provide barcode_data parameter"
-msgstr "Debe proporcionar el parámetro barcode_data"
+msgstr ""
 
 #: barcodes/api.py:126
 msgid "No match found for barcode data"
-msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
+msgstr ""
 
 #: barcodes/api.py:128
 msgid "Match found for barcode data"
-msgstr "Coincidencia encontrada para datos de códigos de barras"
+msgstr ""
 
 #: barcodes/api.py:153
 msgid "Must provide stockitem parameter"
-msgstr "Debe proporcionar el parámetro stockitem"
+msgstr ""
 
 #: barcodes/api.py:160
 msgid "No matching stock item found"
-msgstr "No se ha encontrado ningún artículo de stock que coincida"
+msgstr ""
 
 #: barcodes/api.py:190
 msgid "Barcode already matches StockItem object"
-msgstr "El código de barras ya corresponde al objeto de inventario"
+msgstr ""
 
 #: barcodes/api.py:194
 msgid "Barcode already matches StockLocation object"
-msgstr "El código de barras ya corresponde a la ubicación de almacenamiento de existencias"
+msgstr ""
 
 #: barcodes/api.py:198
 msgid "Barcode already matches Part object"
-msgstr "El código de barras ya corresponde a la parte"
+msgstr ""
 
 #: barcodes/api.py:204 barcodes/api.py:216
 msgid "Barcode hash already matches StockItem object"
-msgstr "El código de barras ya está asignado a un objeto de inventario"
+msgstr ""
 
 #: barcodes/api.py:222
 msgid "Barcode associated with StockItem"
-msgstr "Código de barras asignado al objeto de inventario"
+msgstr ""
 
 #: build/forms.py:36 build/models.py:1283
 #: build/templates/build/build_base.html:124
@@ -547,19 +549,18 @@ msgstr "Código de barras asignado al objeto de inventario"
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,64 +568,66 @@ msgstr "Código de barras asignado al objeto de inventario"
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
 
 #: build/forms.py:37
 msgid "Enter quantity for build output"
-msgstr "Ingrese la cantidad para la producción de la construcción"
+msgstr ""
 
 #: build/forms.py:41 order/forms.py:96 stock/forms.py:95
 #: stock/serializers.py:307 templates/js/translated/stock.js:194
 #: templates/js/translated/stock.js:348
 msgid "Serial Numbers"
-msgstr "Números de serie"
+msgstr ""
 
 #: build/forms.py:43
 msgid "Enter serial numbers for build outputs"
-msgstr "Introduzca los números de serie de salidas de construcción"
+msgstr ""
 
 #: build/forms.py:49
 msgid "Confirm creation of build output"
-msgstr "Confirmar la creación de salida de construcción"
+msgstr ""
 
 #: build/forms.py:70
 msgid "Confirm deletion of build output"
-msgstr "Confirmar eliminación de salida de construcción"
+msgstr ""
 
 #: build/forms.py:94
 msgid "Mark build as complete"
-msgstr "Marcar como construcción completa"
+msgstr ""
 
 #: build/forms.py:107
 msgid "Confirm cancel"
-msgstr "Confirmar cancelación"
+msgstr ""
 
 #: build/forms.py:107 build/views.py:65
 msgid "Confirm build cancellation"
-msgstr "Confirmar la cancelación de construcción"
+msgstr ""
 
 #: build/models.py:133
 msgid "Invalid choice for parent build"
-msgstr "Opción no válida para la construcción padre"
+msgstr ""
 
 #: build/models.py:137 build/templates/build/build_base.html:9
 #: build/templates/build/build_base.html:27
 #: report/templates/report/inventree_build_order_base.html:106
 #: templates/js/translated/build.js:397
 msgid "Build Order"
-msgstr "Construir órden"
+msgstr ""
 
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
-msgstr "Construir órdenes"
+msgstr ""
 
 #: build/models.py:198
 msgid "Build Order Reference"
@@ -635,10 +638,10 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
-msgstr "Referencia"
+msgstr ""
 
 #: build/models.py:210
 msgid "Brief description of the build"
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,17 +672,17 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
-msgstr "Parte"
+msgstr ""
 
 #: build/models.py:233
 msgid "Select part to build"
@@ -695,7 +698,7 @@ msgstr ""
 
 #: build/models.py:247 templates/js/translated/build.js:1347
 msgid "Source Location"
-msgstr "Ubicación de la fuente"
+msgstr ""
 
 #: build/models.py:251
 msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
@@ -703,73 +706,73 @@ msgstr ""
 
 #: build/models.py:256
 msgid "Destination Location"
-msgstr "Ubicación de destino"
+msgstr ""
 
 #: build/models.py:260
 msgid "Select location where the completed items will be stored"
-msgstr "Seleccione la ubicación donde se almacenarán los elementos completados"
+msgstr ""
 
 #: build/models.py:264
 msgid "Build Quantity"
-msgstr "Cantidad a crear"
+msgstr ""
 
 #: build/models.py:267
 msgid "Number of stock items to build"
-msgstr "Número de objetos existentes a construir"
+msgstr ""
 
 #: build/models.py:271
 msgid "Completed items"
-msgstr "Elementos completados"
+msgstr ""
 
 #: build/models.py:273
 msgid "Number of stock items which have been completed"
-msgstr "Número de productos en stock que se han completado"
+msgstr ""
 
 #: build/models.py:277 part/templates/part/part_base.html:216
 msgid "Build Status"
-msgstr "Estado de la construcción"
+msgstr ""
 
 #: build/models.py:281
 msgid "Build status code"
-msgstr "Código de estado de construcción"
+msgstr ""
 
 #: build/models.py:285 stock/models.py:544
 msgid "Batch Code"
-msgstr "Numero de lote"
+msgstr ""
 
 #: build/models.py:289
 msgid "Batch code for this build output"
-msgstr "Número de lote de este producto final"
+msgstr ""
 
 #: build/models.py:292 order/models.py:165 part/models.py:936
 #: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
 msgid "Creation Date"
-msgstr "Fecha de Creación"
+msgstr ""
 
 #: build/models.py:296 order/models.py:578
 msgid "Target completion date"
-msgstr "Fecha límite de finalización"
+msgstr ""
 
 #: build/models.py:297
 msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
+msgstr ""
 
 #: build/models.py:300 order/models.py:291
 #: templates/js/translated/build.js:1697
 msgid "Completion Date"
-msgstr "Fecha de finalización"
+msgstr ""
 
 #: build/models.py:306
 msgid "completed by"
-msgstr "terminado por"
+msgstr ""
 
 #: build/models.py:314 templates/js/translated/build.js:1668
 msgid "Issued by"
-msgstr "Emitido por"
+msgstr ""
 
 #: build/models.py:315
 msgid "User who issued this build order"
-msgstr "El usuario que emitió esta orden"
+msgstr ""
 
 #: build/models.py:323 build/templates/build/build_base.html:177
 #: build/templates/build/detail.html:116 order/models.py:179
@@ -778,11 +781,11 @@ msgstr "El usuario que emitió esta orden"
 #: report/templates/report/inventree_build_order_base.html:159
 #: templates/js/translated/build.js:1680
 msgid "Responsible"
-msgstr "Responsable"
+msgstr ""
 
 #: build/models.py:324
 msgid "User responsible for this build order"
-msgstr "Usuario responsable de esta orden"
+msgstr ""
 
 #: build/models.py:329 build/templates/build/detail.html:102
 #: company/templates/company/manufacturer_part.html:87
@@ -790,40 +793,47 @@ msgstr "Usuario responsable de esta orden"
 #: part/templates/part/detail.html:80 stock/models.py:538
 #: stock/templates/stock/item_base.html:346
 msgid "External Link"
-msgstr "Link externo"
+msgstr ""
 
 #: build/models.py:330 part/models.py:798 stock/models.py:540
 msgid "Link to external URL"
-msgstr "Enlace a URL externa"
+msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
-msgstr "Notas"
+msgstr ""
 
 #: build/models.py:335
 msgid "Extra build notes"
-msgstr "Notas adicionales de construcción"
+msgstr ""
 
 #: build/models.py:710
 msgid "No build output specified"
-msgstr "No se ha especificado salida de construcción"
+msgstr ""
 
 #: build/models.py:713
 msgid "Build output is already completed"
-msgstr "La construcción de la salida ya está completa"
+msgstr ""
 
 #: build/models.py:716
 msgid "Build output does not match Build Order"
-msgstr "La salida de la construcción no coincide con el orden de construcción"
+msgstr ""
 
 #: build/models.py:1108
 msgid "Build item must specify a build output, as master part is marked as trackable"
@@ -844,7 +854,7 @@ msgstr ""
 
 #: build/models.py:1139
 msgid "Quantity must be 1 for serialized stock"
-msgstr "La cantidad debe ser 1 para el stock serializado"
+msgstr ""
 
 #: build/models.py:1193
 msgid "Selected stock item not found in BOM"
@@ -892,28 +902,20 @@ msgid "Build Output"
 msgstr ""
 
 #: build/serializers.py:146
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Build output does not match the parent build"
-msgstr "La salida de la construcción no coincide con el orden de construcción"
+msgstr ""
 
 #: build/serializers.py:150
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Output part does not match BuildOrder part"
-msgstr "La salida de la construcción no coincide con el orden de construcción"
+msgstr ""
 
 #: build/serializers.py:154
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output has already been completed"
-msgstr "La construcción de la salida ya está completa"
+msgstr ""
 
 #: build/serializers.py:158
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output is not fully allocated"
-msgstr "La construcción de la salida ya está completa"
+msgstr ""
 
 #: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
 #: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
@@ -922,17 +924,15 @@ msgstr "La construcción de la salida ya está completa"
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
-msgstr "Unicación"
+msgstr ""
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Ubicación de las partes completadas"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -942,13 +942,11 @@ msgstr "Ubicación de las partes completadas"
 #: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
 #: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
 msgid "Status"
-msgstr "Estado"
+msgstr ""
 
 #: build/serializers.py:213
-#, fuzzy
-#| msgid "No build output specified"
 msgid "A list of build outputs must be provided"
-msgstr "No se ha especificado salida de construcción"
+msgstr ""
 
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
@@ -956,16 +954,12 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Build output"
-msgstr "Cantidad a crear"
+msgstr ""
 
 #: build/serializers.py:278
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Build output must point to the same build"
-msgstr "La salida de la construcción no coincide con el orden de construcción"
+msgstr ""
 
 #: build/serializers.py:319
 msgid "bom_item.part must point to the same part as the build order"
@@ -998,10 +992,8 @@ msgid "Allocation items must be provided"
 msgstr ""
 
 #: build/tasks.py:92
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock required for build order"
-msgstr "Usuario responsable de esta orden"
+msgstr ""
 
 #: build/templates/build/build_base.html:39
 #: order/templates/order/order_base.html:28
@@ -1070,7 +1062,7 @@ msgstr ""
 #: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
 #: templates/js/translated/order.js:1087
 msgid "Target Date"
-msgstr "Fecha objetivo"
+msgstr ""
 
 #: build/templates/build/build_base.html:143
 #, python-format
@@ -1083,18 +1075,18 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
-msgstr "Completados"
+msgstr ""
 
 #: build/templates/build/build_base.html:163
 #: build/templates/build/detail.html:95 order/models.py:857
@@ -1112,7 +1104,7 @@ msgstr ""
 #: build/templates/build/detail.html:109
 #: report/templates/report/inventree_build_order_base.html:153
 msgid "Issued By"
-msgstr "Emitido por"
+msgstr ""
 
 #: build/templates/build/build_base.html:215
 msgid "Incomplete Outputs"
@@ -1181,7 +1173,7 @@ msgstr ""
 #: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
 #: templates/js/translated/order.js:432 templates/js/translated/order.js:952
 msgid "Destination"
-msgstr "Destinación"
+msgstr ""
 
 #: build/templates/build/detail.html:57
 msgid "Destination location not specified"
@@ -1194,10 +1186,10 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
-msgstr "Lote"
+msgstr ""
 
 #: build/templates/build/detail.html:127
 #: order/templates/order/order_base.html:127
@@ -1214,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1234,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1274,37 +1266,33 @@ msgid "Create new build output"
 msgstr ""
 
 #: build/templates/build/detail.html:232
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "New Build Output"
-msgstr "Cantidad a crear"
+msgstr ""
 
 #: build/templates/build/detail.html:246
-#, fuzzy
-#| msgid "Options"
 msgid "Output Actions"
-msgstr "Opciones"
+msgstr ""
 
 #: build/templates/build/detail.html:250
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete selected items"
-msgstr "Elementos completados"
+msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete outputs"
-msgstr "Elementos completados"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1325,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1362,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1382,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1567,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1633,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1641,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1652,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1669,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1679,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -1820,7 +1824,7 @@ msgstr ""
 
 #: common/models.py:863
 msgid "days"
-msgstr "días"
+msgstr ""
 
 #: common/models.py:868
 msgid "Build Expired Stock"
@@ -2156,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2164,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2194,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2221,9 +2227,9 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
-msgstr "Página web"
+msgstr ""
 
 #: company/models.py:113
 msgid "Company website URL"
@@ -2239,16 +2245,16 @@ msgstr ""
 
 #: company/models.py:121
 msgid "Phone number"
-msgstr "Teléfono"
+msgstr ""
 
 #: company/models.py:122
 msgid "Contact phone number"
-msgstr "Teléfono de contacto"
+msgstr ""
 
 #: company/models.py:125 company/templates/company/company_base.html:102
 #: templates/InvenTree/settings/user.html:46
 msgid "Email"
-msgstr "Email"
+msgstr ""
 
 #: company/models.py:125
 msgid "Contact email address"
@@ -2256,7 +2262,7 @@ msgstr ""
 
 #: company/models.py:128 company/templates/company/company_base.html:109
 msgid "Contact"
-msgstr "Contacto"
+msgstr ""
 
 #: company/models.py:129
 msgid "Point of contact"
@@ -2265,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2324,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
-msgstr "Fabricante"
+msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2366,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2377,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2395,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
-msgstr "Proveedor"
+msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2431,7 +2438,7 @@ msgstr ""
 #: part/models.py:2588 report/templates/report/inventree_po_report.html:93
 #: report/templates/report/inventree_so_report.html:93
 msgid "Note"
-msgstr "Nota"
+msgstr ""
 
 #: company/models.py:580 part/models.py:1748
 msgid "base cost"
@@ -2443,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2469,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2503,22 +2510,24 @@ msgstr ""
 
 #: company/templates/company/company_base.html:95
 msgid "Phone"
-msgstr "Teléfono"
+msgstr ""
 
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
-msgstr "Cliente"
+msgstr ""
 
 #: company/templates/company/company_base.html:194
 #: part/templates/part/part_base.html:342
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2529,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2537,10 +2546,10 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
-msgstr "Opciones"
+msgstr ""
 
 #: company/templates/company/detail.html:37
 #: company/templates/company/detail.html:84
@@ -2566,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2575,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2595,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2625,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2643,7 +2657,7 @@ msgstr ""
 #: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
 #: templates/navbar.html:44
 msgid "Manufacturers"
-msgstr "Fabricantes"
+msgstr ""
 
 #: company/templates/company/manufacturer_part.html:35
 #: company/templates/company/supplier_part.html:34
@@ -2653,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2669,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
-msgstr "Eliminar"
+msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2705,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2717,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,10 +2773,8 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Create new stock item"
-msgstr "Elemento de stock editado"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2769,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2777,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2794,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2808,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2840,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2914,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3209,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Received against purchase order"
 msgid "Print purchase order report"
-msgstr "Recibido contra la orden de compra"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3221,10 +3264,8 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Production"
 msgid "Order actions"
-msgstr "Producción"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
@@ -3349,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3422,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3441,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3732,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3777,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3845,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3854,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3867,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3924,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3974,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3991,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -4000,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -4008,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4070,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4104,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4115,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4164,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr ""
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "Low stock notification"
-msgstr "Confirmar asignación de stock"
+msgstr ""
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4188,17 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
-#, fuzzy
-#| msgid "Options"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
-msgstr "Opciones"
+msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Eliminar elemento"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4208,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4250,38 +4320,28 @@ msgid "Category Actions"
 msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4296,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4309,7 +4370,7 @@ msgstr ""
 
 #: part/templates/part/category.html:146 part/templates/part/category.html:170
 msgid "Export"
-msgstr "Exportar"
+msgstr ""
 
 #: part/templates/part/category.html:149
 msgid "Create new part"
@@ -4382,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,10 +4472,8 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Details"
 msgid "Part Details"
-msgstr "Detalles"
+msgstr ""
 
 #: part/templates/part/detail.html:66
 msgid "Minimum stock level"
@@ -4457,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4465,116 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
-#, fuzzy
-#| msgid "Export"
+#: part/templates/part/detail.html:345
 msgid "Export actions"
-msgstr "Exportar"
+msgstr ""
 
-#: part/templates/part/detail.html:375
-#, fuzzy
-#| msgid "Export"
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
-msgstr "Exportar"
+msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4672,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4685,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4705,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4745,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4779,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4849,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4871,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4891,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4914,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5080,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5132,60 +5197,46 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
 #: templates/js/translated/model_renderers.js:95
 #: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
 msgid "Serial Number"
-msgstr "Número de serie"
+msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5417,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5442,10 +5493,8 @@ msgid "Purchase currency of this stock item"
 msgstr ""
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of stock items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "Número de objetos existentes a construir"
+msgstr ""
 
 #: stock/serializers.py:302
 #, python-brace-format
@@ -5453,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new items"
-msgstr "Introduzca los números de serie de salidas de construcción"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5499,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5620,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5799,10 +5847,8 @@ msgid "New Location"
 msgstr ""
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "Top level stock location"
-msgstr "Confirmar asignación de stock"
+msgstr ""
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5810,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5842,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6089,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6112,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6138,10 +6190,8 @@ msgid "Edit Global Setting"
 msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit User Information"
 msgid "Edit User Setting"
-msgstr "Editar datos del usuario"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6161,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6169,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6242,10 +6341,8 @@ msgid "Enter e-mail address"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:113
-#, fuzzy
-#| msgid "Email"
 msgid "Add Email"
-msgstr "Email"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:123
 msgid "Social Accounts"
@@ -6268,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6294,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6311,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Seleccionar Categoría"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6337,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6443,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6512,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Introduzca contraseña"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6551,10 +6632,8 @@ msgid "Contact your system administrator for further information"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:7
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock is required for the following build order"
-msgstr "Usuario responsable de esta orden"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:8
 #, python-format
@@ -6570,15 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Build Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Cantidad a crear"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6606,10 +6683,8 @@ msgid "Total Stock"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Minimum Quantity"
-msgstr "Cantidad a crear"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6627,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6802,96 +6956,94 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Separar del elemento principal"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -6938,10 +7090,8 @@ msgid "Output"
 msgstr ""
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete Build Outputs"
-msgstr "Elementos completados"
+msgstr ""
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -6952,10 +7102,8 @@ msgid "Location not specified"
 msgstr ""
 
 #: templates/js/translated/build.js:603
-#, fuzzy
-#| msgid "No build output specified"
 msgid "No active build outputs found"
-msgstr "No se ha especificado salida de construcción"
+msgstr ""
 
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
@@ -7004,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7019,7 +7162,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:1377
 msgid "Confirm stock allocation"
-msgstr "Confirmar asignación de stock"
+msgstr ""
 
 #: templates/js/translated/build.js:1378
 msgid "Allocate Stock Items to Build Order"
@@ -7037,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7063,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7075,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7211,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Debe ser un numero valido"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7241,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7467,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7543,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7823,34 +7901,24 @@ msgid "Parent stock location"
 msgstr ""
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "Source Location"
 msgid "New Stock Location"
-msgstr "Ubicación de la fuente"
+msgstr ""
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Enter quantity for build output"
 msgid "Enter initial quantity for this stock item"
-msgstr "Ingrese la cantidad para la producción de la construcción"
+msgstr ""
 
 #: templates/js/translated/stock.js:195
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr "Introduzca los números de serie de salidas de construcción"
+msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created new stock item"
-msgstr "Elemento de stock editado"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created multiple stock items"
-msgstr "Elemento de stock editado"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -7997,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8045,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Detalles"
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8085,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8105,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8543,32 +8611,3 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr ""
 
-#~ msgid "Build Order reference"
-#~ msgstr "Número de orden de construcción"
-
-#~ msgid "Order target date"
-#~ msgstr "Fecha objetivo de pedido"
-
-#~ msgid "Number of items to build"
-#~ msgstr "Número de elementos para construir"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "Confirmar la desasignación de stock"
-
-#~ msgid "Build output stock status"
-#~ msgstr "Generar estado de stock de salida"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "Confirmar incompleta"
-
-#~ msgid "Confirm completion with incomplete stock allocation"
-#~ msgstr "Confirmar la finalización con una asignación de stock incompleta"
-
-#~ msgid "Confirm build completion"
-#~ msgstr "Confirmar la terminación de construcción"
-
-#~ msgid "Progress"
-#~ msgstr "Progreso"
-
-#~ msgid "Save"
-#~ msgstr "Guardar"
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index 5162bf6bc2..cf4017d955 100644
--- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -133,7 +133,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -174,8 +174,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -186,18 +187,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -217,83 +219,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -418,7 +420,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -548,19 +550,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -568,8 +569,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -622,8 +623,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -636,7 +639,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -660,7 +663,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -670,15 +673,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -797,16 +800,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -915,7 +925,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1066,16 +1076,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1177,8 +1187,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1197,7 +1207,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1217,7 +1227,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1276,10 +1286,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1300,32 +1314,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1337,7 +1355,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1357,6 +1375,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1542,7 +1572,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1608,7 +1638,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1616,9 +1646,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1627,7 +1657,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1644,7 +1674,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1654,8 +1684,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2131,7 +2161,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2139,19 +2169,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2169,13 +2201,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2196,7 +2228,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2240,8 +2272,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2299,25 +2331,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2341,9 +2373,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2352,8 +2384,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2370,23 +2403,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2418,7 +2451,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2444,7 +2477,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2483,7 +2516,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2493,7 +2526,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2504,7 +2539,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2512,8 +2547,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2541,7 +2576,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2550,11 +2585,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2570,11 +2608,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2600,13 +2640,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2628,12 +2668,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2644,27 +2684,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2680,7 +2722,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2692,20 +2734,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2742,7 +2800,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2750,11 +2808,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2767,11 +2825,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2781,13 +2842,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2813,24 +2886,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2887,7 +2960,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3318,19 +3391,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3391,6 +3464,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3410,10 +3519,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3701,23 +3806,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3746,10 +3847,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3814,7 +3917,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3823,7 +3926,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3836,7 +3940,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3893,9 +3997,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3943,7 +4047,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3960,8 +4064,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3969,7 +4073,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3977,7 +4081,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4039,9 +4143,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4073,10 +4177,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4084,7 +4188,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4155,7 +4259,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4171,23 +4275,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4249,6 +4357,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4335,7 +4444,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4408,7 +4521,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4416,112 +4529,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4619,10 +4740,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4632,11 +4753,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4652,12 +4773,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4692,7 +4813,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4726,6 +4847,18 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
@@ -4796,7 +4929,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4818,7 +4951,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4838,9 +4971,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4861,136 +4994,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5027,51 +5147,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5079,16 +5199,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5097,42 +5212,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5364,7 +5470,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5442,6 +5548,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5563,13 +5670,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5751,17 +5858,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5783,6 +5883,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6030,6 +6142,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6053,11 +6166,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6100,6 +6213,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6108,10 +6274,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6229,6 +6391,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6246,10 +6412,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6270,20 +6432,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6499,13 +6653,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6552,6 +6706,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6727,92 +6960,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6923,11 +7156,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6956,8 +7184,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6982,7 +7210,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6994,87 +7222,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7158,11 +7386,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7384,7 +7607,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7460,277 +7683,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7904,7 +8069,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7952,10 +8117,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7992,6 +8153,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8012,180 +8177,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 80493f50de..6287e77763 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: French\n"
 "Language: fr_FR\n"
@@ -70,15 +70,15 @@ msgstr "Sélectionnez une catégorie"
 
 #: InvenTree/forms.py:230
 msgid "Email (again)"
-msgstr ""
+msgstr "Email (encore)"
 
 #: InvenTree/forms.py:234
 msgid "Email address confirmation"
-msgstr ""
+msgstr "Confirmation de l'adresse email"
 
 #: InvenTree/forms.py:254
 msgid "You must type the same email each time."
-msgstr ""
+msgstr "Vous devez taper le même e-mail à chaque fois."
 
 #: InvenTree/helpers.py:430
 #, python-brace-format
@@ -132,7 +132,7 @@ msgstr "Commentaire du fichier"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Utilisateur"
@@ -143,38 +143,39 @@ msgstr "date de chargement"
 
 #: InvenTree/models.py:142
 msgid "Filename must not be empty"
-msgstr ""
+msgstr "Le nom de fichier ne doit pas être vide"
 
 #: InvenTree/models.py:165
 msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Répertoire de pièce jointe invalide"
 
 #: InvenTree/models.py:175
 #, python-brace-format
 msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "Le nom de fichier contient le caractère illégal '{c}'"
 
 #: InvenTree/models.py:178
 msgid "Filename missing extension"
-msgstr ""
+msgstr "Extension manquante du nom de fichier"
 
 #: InvenTree/models.py:185
 msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Une pièce jointe avec ce nom de fichier existe déjà"
 
 #: InvenTree/models.py:192
 msgid "Error renaming file"
-msgstr ""
+msgstr "Erreur lors du renommage du fichier"
 
 #: InvenTree/models.py:227
 msgid "Invalid choice"
-msgstr ""
+msgstr "Choix invalide"
 
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Nom"
@@ -185,18 +186,19 @@ msgstr "Nom"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Description"
 
@@ -210,91 +212,91 @@ msgstr "parent"
 
 #: InvenTree/serializers.py:62 part/models.py:2674
 msgid "Must be a valid number"
-msgstr ""
+msgstr "Doit être un nombre valide"
 
 #: InvenTree/serializers.py:251
 msgid "Filename"
-msgstr ""
+msgstr "Nom du fichier"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Allemand"
 
-#: InvenTree/settings.py:664
-msgid "Greek"
-msgstr ""
-
 #: InvenTree/settings.py:665
+msgid "Greek"
+msgstr "Greek"
+
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Anglais"
 
-#: InvenTree/settings.py:666
-msgid "Spanish"
-msgstr ""
-
 #: InvenTree/settings.py:667
-msgid "Spanish (Mexican)"
-msgstr ""
+msgid "Spanish"
+msgstr "Spanish"
 
 #: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr "Espagnol (Mexique)"
+
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Français"
 
-#: InvenTree/settings.py:669
-msgid "Hebrew"
-msgstr ""
-
 #: InvenTree/settings.py:670
-msgid "Italian"
-msgstr ""
+msgid "Hebrew"
+msgstr "Hebrew"
 
 #: InvenTree/settings.py:671
-msgid "Japanese"
-msgstr ""
+msgid "Italian"
+msgstr "Italian"
 
 #: InvenTree/settings.py:672
-msgid "Korean"
-msgstr ""
+msgid "Japanese"
+msgstr "Japanese"
 
 #: InvenTree/settings.py:673
-msgid "Dutch"
-msgstr ""
+msgid "Korean"
+msgstr "Korean"
 
 #: InvenTree/settings.py:674
-msgid "Norwegian"
-msgstr ""
+msgid "Dutch"
+msgstr "Dutch"
 
 #: InvenTree/settings.py:675
+msgid "Norwegian"
+msgstr "Norwegian"
+
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polonais"
 
-#: InvenTree/settings.py:676
-msgid "Portugese"
-msgstr ""
-
 #: InvenTree/settings.py:677
-msgid "Russian"
-msgstr ""
+msgid "Portugese"
+msgstr "Portugais"
 
 #: InvenTree/settings.py:678
-msgid "Swedish"
-msgstr ""
+msgid "Russian"
+msgstr "Russian"
 
 #: InvenTree/settings.py:679
-msgid "Thai"
-msgstr ""
+msgid "Swedish"
+msgstr "Swedish"
 
 #: InvenTree/settings.py:680
+msgid "Thai"
+msgstr "Thai"
+
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Turc"
 
-#: InvenTree/settings.py:681
-msgid "Vietnamese"
-msgstr ""
-
 #: InvenTree/settings.py:682
+msgid "Vietnamese"
+msgstr "Vietnamese"
+
+#: InvenTree/settings.py:683
 msgid "Chinese"
-msgstr ""
+msgstr "Chinese"
 
 #: InvenTree/status.py:94
 msgid "Background worker check failed"
@@ -315,7 +317,7 @@ msgstr "En attente"
 
 #: InvenTree/status_codes.py:102
 msgid "Placed"
-msgstr ""
+msgstr "Placé"
 
 #: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
 msgid "Complete"
@@ -417,7 +419,7 @@ msgstr "Séparer de l'élément parent"
 msgid "Split child item"
 msgstr "Fractionner l'élément enfant"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Envoyé au client"
 
@@ -483,7 +485,7 @@ msgstr "Supprimer cet élément"
 
 #: InvenTree/views.py:585
 msgid "Check box to confirm item deletion"
-msgstr ""
+msgstr "Cochez la case pour confirmer la suppression de l'élément"
 
 #: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
 msgid "Edit User Information"
@@ -491,11 +493,11 @@ msgstr "Modifier les informations utilisateur"
 
 #: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
 msgid "Set Password"
-msgstr ""
+msgstr "Définir le mot de passe"
 
 #: InvenTree/views.py:630
 msgid "Password fields must match"
-msgstr ""
+msgstr "Les mots de passe doivent correspondre"
 
 #: InvenTree/views.py:863 templates/navbar.html:101
 msgid "System Information"
@@ -503,7 +505,7 @@ msgstr "Informations système"
 
 #: barcodes/api.py:53 barcodes/api.py:150
 msgid "Must provide barcode_data parameter"
-msgstr ""
+msgstr "Le paramètre barcode_data doit être fourni"
 
 #: barcodes/api.py:126
 msgid "No match found for barcode data"
@@ -515,11 +517,11 @@ msgstr "Correspondance trouvée pour les données du code-barres"
 
 #: barcodes/api.py:153
 msgid "Must provide stockitem parameter"
-msgstr ""
+msgstr "Vous devez fournir le paramètre stockitem"
 
 #: barcodes/api.py:160
 msgid "No matching stock item found"
-msgstr ""
+msgstr "Aucun article d'inventaire correspondant trouvé"
 
 #: barcodes/api.py:190
 msgid "Barcode already matches StockItem object"
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Quantité"
@@ -589,7 +590,7 @@ msgstr ""
 
 #: build/forms.py:49
 msgid "Confirm creation of build output"
-msgstr ""
+msgstr "Confirmer la création de la sortie de l'assemblage"
 
 #: build/forms.py:70
 msgid "Confirm deletion of build output"
@@ -601,7 +602,7 @@ msgstr ""
 
 #: build/forms.py:107
 msgid "Confirm cancel"
-msgstr ""
+msgstr "Confirmer l'annulation"
 
 #: build/forms.py:107 build/views.py:65
 msgid "Confirm build cancellation"
@@ -616,26 +617,28 @@ msgstr ""
 #: report/templates/report/inventree_build_order_base.html:106
 #: templates/js/translated/build.js:397
 msgid "Build Order"
-msgstr ""
+msgstr "Ordre de Fabrication"
 
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
-msgstr ""
+msgstr "Ordres de Fabrication"
 
 #: build/models.py:198
 msgid "Build Order Reference"
-msgstr ""
+msgstr "Référence de l' Ordre de Fabrication"
 
 #: build/models.py:199 order/models.py:249 order/models.py:556
 #: order/models.py:736 part/models.py:2585
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr "Référence"
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "Pièce"
 
@@ -695,7 +698,7 @@ msgstr ""
 
 #: build/models.py:247 templates/js/translated/build.js:1347
 msgid "Source Location"
-msgstr ""
+msgstr "Emplacement d'origine"
 
 #: build/models.py:251
 msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
@@ -703,11 +706,11 @@ msgstr ""
 
 #: build/models.py:256
 msgid "Destination Location"
-msgstr ""
+msgstr "Emplacement cible"
 
 #: build/models.py:260
 msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés"
 
 #: build/models.py:264
 msgid "Build Quantity"
@@ -794,18 +797,25 @@ msgstr "Lien Externe"
 
 #: build/models.py:330 part/models.py:798 stock/models.py:540
 msgid "Link to external URL"
-msgstr ""
+msgstr "Lien vers une url externe"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "Notes"
 
@@ -854,7 +864,7 @@ msgstr ""
 #: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
 #: templates/navbar.html:33
 msgid "Build"
-msgstr ""
+msgstr "Assemblage"
 
 #: build/models.py:1254
 msgid "Build to allocate parts"
@@ -869,7 +879,7 @@ msgstr ""
 #: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
 #: templates/js/translated/stock.js:1990
 msgid "Stock Item"
-msgstr ""
+msgstr "Article en stock"
 
 #: build/models.py:1271
 msgid "Source stock item"
@@ -881,7 +891,7 @@ msgstr ""
 
 #: build/models.py:1292
 msgid "Install into"
-msgstr ""
+msgstr "Installer dans"
 
 #: build/models.py:1293
 msgid "Destination stock item"
@@ -889,7 +899,7 @@ msgstr ""
 
 #: build/serializers.py:137 build/serializers.py:357
 msgid "Build Output"
-msgstr ""
+msgstr "Sortie d'assemblage"
 
 #: build/serializers.py:146
 msgid "Build output does not match the parent build"
@@ -914,17 +924,15 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
-msgstr ""
+msgstr "Emplacement"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Emplacement des pièces terminées"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -934,7 +942,7 @@ msgstr "Emplacement des pièces terminées"
 #: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
 #: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
 msgid "Status"
-msgstr ""
+msgstr "État"
 
 #: build/serializers.py:213
 msgid "A list of build outputs must be provided"
@@ -946,10 +954,8 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build order output created"
 msgid "Build output"
-msgstr "La sortie de l'ordre de construction a été créée"
+msgstr ""
 
 #: build/serializers.py:278
 msgid "Build output must point to the same build"
@@ -961,17 +967,17 @@ msgstr ""
 
 #: build/serializers.py:334
 msgid "Item must be in stock"
-msgstr ""
+msgstr "L'article doit être en stock"
 
 #: build/serializers.py:348 order/models.py:316 order/serializers.py:231
 #: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
 msgid "Quantity must be greater than zero"
-msgstr ""
+msgstr "La quantité doit être supérieure à zéro"
 
 #: build/serializers.py:390
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
-msgstr ""
+msgstr "Quantité disponible ({q}) dépassée"
 
 #: build/serializers.py:396
 msgid "Build output must be specified for allocation of tracked parts"
@@ -993,7 +999,7 @@ msgstr ""
 #: order/templates/order/order_base.html:28
 #: order/templates/order/sales_order_base.html:38
 msgid "Print actions"
-msgstr ""
+msgstr "Actions d'impression"
 
 #: build/templates/build/build_base.html:43
 msgid "Print build order report"
@@ -1005,22 +1011,22 @@ msgstr ""
 
 #: build/templates/build/build_base.html:54
 msgid "Edit Build"
-msgstr ""
+msgstr "Modifier l'assemblage"
 
 #: build/templates/build/build_base.html:56
 #: build/templates/build/build_base.html:207 build/views.py:56
 msgid "Cancel Build"
-msgstr ""
+msgstr "Annuler l'assemblage"
 
 #: build/templates/build/build_base.html:59
 msgid "Delete Build"
-msgstr ""
+msgstr "Supprimer l'assemblage"
 
 #: build/templates/build/build_base.html:64
 #: build/templates/build/build_base.html:65
 #: build/templates/build/build_base.html:223
 msgid "Complete Build"
-msgstr ""
+msgstr "Compléter l'assemblage"
 
 #: build/templates/build/build_base.html:79
 #, python-format
@@ -1056,7 +1062,7 @@ msgstr ""
 #: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
 #: templates/js/translated/order.js:1087
 msgid "Target Date"
-msgstr ""
+msgstr "Date Cible"
 
 #: build/templates/build/build_base.html:143
 #, python-format
@@ -1069,18 +1075,18 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
-msgstr ""
+msgstr "En retard"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
-msgstr ""
+msgstr "Terminé"
 
 #: build/templates/build/build_base.html:163
 #: build/templates/build/detail.html:95 order/models.py:857
@@ -1092,7 +1098,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:280
 #: templates/js/translated/order.js:1029
 msgid "Sales Order"
-msgstr ""
+msgstr "Commandes"
 
 #: build/templates/build/build_base.html:170
 #: build/templates/build/detail.html:109
@@ -1167,7 +1173,7 @@ msgstr ""
 #: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
 #: templates/js/translated/order.js:432 templates/js/translated/order.js:952
 msgid "Destination"
-msgstr ""
+msgstr "Destination"
 
 #: build/templates/build/detail.html:57
 msgid "Destination location not specified"
@@ -1180,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1190,17 +1196,17 @@ msgstr ""
 #: order/templates/order/sales_order_base.html:134
 #: templates/js/translated/build.js:1663
 msgid "Created"
-msgstr ""
+msgstr "Créé le"
 
 #: build/templates/build/detail.html:138
 msgid "No target date set"
-msgstr ""
+msgstr "Pas de date cible définie"
 
 #: build/templates/build/detail.html:147
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1220,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1272,19 +1278,21 @@ msgid "Complete selected items"
 msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Complete"
 msgid "Complete outputs"
-msgstr "Terminé"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "Pieces jointes"
 
@@ -1302,35 +1310,39 @@ msgstr ""
 #: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
 #: stock/templates/stock/item.html:205
 msgid "Edit Notes"
-msgstr ""
+msgstr "Modifier les notes"
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
-msgstr ""
+msgstr "Ajouter une pièce jointe"
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
-msgstr ""
+msgstr "Modifier la pièce jointe"
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1342,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1362,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr "Articles en attente"
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1372,7 +1396,7 @@ msgstr ""
 
 #: build/views.py:106
 msgid "Maximum output quantity is "
-msgstr ""
+msgstr "La quantité maximale de sortie est "
 
 #: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
 msgid "Serial numbers already exist"
@@ -1424,7 +1448,7 @@ msgstr ""
 
 #: common/files.py:67
 msgid "Unsupported file format: {ext.upper()}"
-msgstr ""
+msgstr "Format de fichier non pris en charge : {ext.upper()}"
 
 #: common/files.py:69
 msgid "Error reading file (invalid encoding)"
@@ -1444,7 +1468,7 @@ msgstr ""
 
 #: common/forms.py:34 templates/js/translated/attachment.js:54
 msgid "File"
-msgstr ""
+msgstr "Fichier"
 
 #: common/forms.py:35
 msgid "Select file to upload"
@@ -1489,13 +1513,11 @@ msgstr ""
 
 #: common/models.py:559
 msgid "No group"
-msgstr ""
+msgstr "Pas de groupe"
 
 #: common/models.py:601
-#, fuzzy
-#| msgid "Order required parts"
 msgid "Restart required"
-msgstr "Commander les pièces requises"
+msgstr "Redémarrage nécessaire"
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
@@ -1519,7 +1541,7 @@ msgstr ""
 
 #: common/models.py:622 company/models.py:100 company/models.py:101
 msgid "Company name"
-msgstr ""
+msgstr "Nom de la société"
 
 #: common/models.py:623
 msgid "Internal company name"
@@ -1535,11 +1557,11 @@ msgstr ""
 
 #: common/models.py:635
 msgid "Default Currency"
-msgstr ""
+msgstr "Devise par défaut"
 
 #: common/models.py:636
 msgid "Default currency"
-msgstr ""
+msgstr "Devises par défaut"
 
 #: common/models.py:642
 msgid "Download from URL"
@@ -1549,7 +1571,7 @@ msgstr "Télécharger depuis l'URL"
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1615,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1623,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1634,9 +1656,9 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
-msgstr ""
+msgstr "Composant"
 
 #: common/models.py:718
 msgid "Parts can be used as sub-components by default"
@@ -1644,14 +1666,14 @@ msgstr ""
 
 #: common/models.py:724 part/models.py:905
 msgid "Purchaseable"
-msgstr ""
+msgstr "Achetable"
 
 #: common/models.py:725
 msgid "Parts are purchaseable by default"
-msgstr ""
+msgstr "Les pièces sont achetables par défaut"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1661,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -1686,7 +1708,7 @@ msgstr ""
 
 #: common/models.py:753
 msgid "Display the import wizard in some part views"
-msgstr ""
+msgstr "Afficher l'assistant d'importation pour certaine vues de produits"
 
 #: common/models.py:759
 msgid "Show Price in Forms"
@@ -1762,7 +1784,7 @@ msgstr ""
 
 #: common/models.py:828
 msgid "Page Size"
-msgstr ""
+msgstr "Taille de la page"
 
 #: common/models.py:829
 msgid "Default page size for PDF reports"
@@ -1770,7 +1792,7 @@ msgstr ""
 
 #: common/models.py:839
 msgid "Test Reports"
-msgstr ""
+msgstr "Rapports de test"
 
 #: common/models.py:840
 msgid "Enable generation of test reports"
@@ -1854,7 +1876,7 @@ msgstr ""
 
 #: common/models.py:906
 msgid "Purchase Order Reference Prefix"
-msgstr ""
+msgstr "Préfixe des commandes d'achats"
 
 #: common/models.py:907
 msgid "Prefix value for purchase order reference"
@@ -1862,7 +1884,7 @@ msgstr ""
 
 #: common/models.py:913
 msgid "Enable password forgot"
-msgstr ""
+msgstr "Activer les mots de passe oubliés"
 
 #: common/models.py:914
 msgid "Enable password forgot function on the login pages"
@@ -1870,7 +1892,7 @@ msgstr ""
 
 #: common/models.py:919
 msgid "Enable registration"
-msgstr ""
+msgstr "Activer les inscriptions"
 
 #: common/models.py:920
 msgid "Enable self-registration for users on the login pages"
@@ -1878,15 +1900,15 @@ msgstr ""
 
 #: common/models.py:925
 msgid "Enable SSO"
-msgstr ""
+msgstr "Activer le SSO"
 
 #: common/models.py:926
 msgid "Enable SSO on the login pages"
-msgstr ""
+msgstr "Activer le SSO sur les pages de connexion"
 
 #: common/models.py:931
 msgid "Email required"
-msgstr ""
+msgstr "Email requis"
 
 #: common/models.py:932
 msgid "Require user to supply mail on signup"
@@ -1894,7 +1916,7 @@ msgstr ""
 
 #: common/models.py:937
 msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "Saisie automatique des utilisateurs SSO"
 
 #: common/models.py:938
 msgid "Automatically fill out user-details from SSO account-data"
@@ -1902,7 +1924,7 @@ msgstr ""
 
 #: common/models.py:943
 msgid "Mail twice"
-msgstr ""
+msgstr "Courriel en double"
 
 #: common/models.py:944
 msgid "On signup ask users twice for their mail"
@@ -1942,7 +1964,7 @@ msgstr ""
 
 #: common/models.py:1013
 msgid "Show latest parts"
-msgstr ""
+msgstr "Afficher les dernières pièces"
 
 #: common/models.py:1014
 msgid "Show latest parts on the homepage"
@@ -1966,7 +1988,7 @@ msgstr ""
 
 #: common/models.py:1032
 msgid "Show recent stock changes"
-msgstr ""
+msgstr "Afficher les dernières modifications du stock"
 
 #: common/models.py:1033
 msgid "Show recently changed stock items on the homepage"
@@ -2138,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2146,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2176,23 +2200,23 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
 #: company/forms.py:24 part/forms.py:46
 msgid "URL"
-msgstr ""
+msgstr "URL"
 
 #: company/forms.py:25 part/forms.py:47
 msgid "Image URL"
-msgstr ""
+msgstr "URL de l'image"
 
 #: company/models.py:105
 msgid "Company description"
@@ -2203,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2230,64 +2254,64 @@ msgstr ""
 #: company/models.py:125 company/templates/company/company_base.html:102
 #: templates/InvenTree/settings/user.html:46
 msgid "Email"
-msgstr ""
+msgstr "E-mail"
 
 #: company/models.py:125
 msgid "Contact email address"
-msgstr ""
+msgstr "Adresse e-mail de contact"
 
 #: company/models.py:128 company/templates/company/company_base.html:109
 msgid "Contact"
-msgstr ""
+msgstr "Contact"
 
 #: company/models.py:129
 msgid "Point of contact"
-msgstr ""
+msgstr "Point de contact"
 
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
-msgstr ""
+msgstr "Lien"
 
 #: company/models.py:131
 msgid "Link to external company information"
-msgstr ""
+msgstr "Lien externe vers les informations de l'entreprise"
 
 #: company/models.py:139 part/models.py:807
 msgid "Image"
-msgstr ""
+msgstr "Image"
 
 #: company/models.py:144
 msgid "is customer"
-msgstr ""
+msgstr "est client"
 
 #: company/models.py:144
 msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "Vendez-vous des objets à cette entreprise?"
 
 #: company/models.py:146
 msgid "is supplier"
-msgstr ""
+msgstr "est fournisseur"
 
 #: company/models.py:146
 msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "Est-ce que vous achetez des articles à cette entreprise?"
 
 #: company/models.py:148
 msgid "is manufacturer"
-msgstr ""
+msgstr "est fabricant"
 
 #: company/models.py:148
 msgid "Does this company manufacture parts?"
-msgstr ""
+msgstr "Cette entreprise fabrique-t-elle des pièces?"
 
 #: company/models.py:152 company/serializers.py:270
 #: company/templates/company/company_base.html:76 stock/serializers.py:172
 msgid "Currency"
-msgstr ""
+msgstr "Devise"
 
 #: company/models.py:155
 msgid "Default currency used for this company"
@@ -2306,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
-msgstr ""
+msgstr "Fabricant"
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
-msgstr ""
+msgstr "Sélectionner un fabricant"
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2348,19 +2372,20 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
-msgstr ""
+msgstr "Valeur"
 
 #: company/models.py:423
 msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2377,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
-msgstr ""
+msgstr "Fournisseur"
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2442,7 @@ msgstr ""
 
 #: company/models.py:580 part/models.py:1748
 msgid "base cost"
-msgstr ""
+msgstr "coût de base"
 
 #: company/models.py:580 part/models.py:1748
 msgid "Minimum charge (e.g. stocking fee)"
@@ -2425,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2451,14 +2476,14 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
 #: company/templates/company/company_base.html:22
 #: templates/js/translated/order.js:121
 msgid "Create Purchase Order"
-msgstr ""
+msgstr "Créer une commande d'achat"
 
 #: company/templates/company/company_base.html:27
 msgid "Edit company information"
@@ -2472,12 +2497,12 @@ msgstr ""
 #: company/templates/company/company_base.html:48
 #: part/templates/part/part_thumb.html:12
 msgid "Upload new image"
-msgstr ""
+msgstr "Ajouter une nouvelle image"
 
 #: company/templates/company/company_base.html:51
 #: part/templates/part/part_thumb.html:14
 msgid "Download image from URL"
-msgstr ""
+msgstr "Télécharger l'image depuis l'URL"
 
 #: company/templates/company/company_base.html:81
 msgid "Uses default currency"
@@ -2490,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2500,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2511,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2519,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2548,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2557,34 +2584,39 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
-msgstr ""
+msgstr "Commandes d'achat"
 
 #: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
 msgid "Create new purchase order"
-msgstr ""
+msgstr "Créer une commande d'achat"
 
 #: company/templates/company/detail.html:122
 #: order/templates/order/purchase_orders.html:18
 msgid "New Purchase Order"
-msgstr ""
+msgstr "Nouvelle commande achat"
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
-msgstr ""
+msgstr "Ventes"
 
 #: company/templates/company/detail.html:147
 #: order/templates/order/sales_orders.html:20
@@ -2594,12 +2626,12 @@ msgstr ""
 #: company/templates/company/detail.html:148
 #: order/templates/order/sales_orders.html:21
 msgid "New Sales Order"
-msgstr ""
+msgstr "Nouvelle commande de vente"
 
 #: company/templates/company/detail.html:168
 #: templates/js/translated/build.js:999
 msgid "Assigned Stock"
-msgstr ""
+msgstr "Stock affecté"
 
 #: company/templates/company/detail.html:184
 msgid "Company Notes"
@@ -2607,25 +2639,25 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
 #: company/templates/company/index.html:8
 msgid "Supplier List"
-msgstr ""
+msgstr "Liste des Fournisseurs"
 
 #: company/templates/company/manufacturer_part.html:14 company/views.py:55
 #: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
 #: templates/navbar.html:44
 msgid "Manufacturers"
-msgstr ""
+msgstr "Fabricants"
 
 #: company/templates/company/manufacturer_part.html:35
 #: company/templates/company/supplier_part.html:34
@@ -2635,59 +2667,61 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:70
 #: company/templates/company/supplier_part.html:71
 msgid "Internal Part"
-msgstr ""
+msgstr "Pièces Internes"
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
-msgstr ""
+msgstr "Fournisseurs"
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
-msgstr ""
+msgstr "Supprimer les pièces du fournisseur"
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
-msgstr ""
+msgstr "Supprimer"
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
-msgstr ""
+msgstr "Paramètres"
 
 #: company/templates/company/manufacturer_part.html:141
 #: part/templates/part/detail.html:282
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:65
 msgid "New Parameter"
-msgstr ""
+msgstr "Nouveau paramètre"
 
 #: company/templates/company/manufacturer_part.html:152
 msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2699,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2723,10 +2773,8 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Create new stock item"
-msgstr "Article de stock modifié"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2751,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2759,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2776,70 +2824,85 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
-msgstr ""
+msgstr "Stock"
 
 #: company/templates/company/supplier_part_navbar.html:22
 msgid "Orders"
-msgstr ""
+msgstr "Commandes"
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
-msgstr ""
+msgstr "Tarif"
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Éléments en stock"
 
 #: company/views.py:50
 msgid "New Supplier"
-msgstr ""
+msgstr "Nouveau Fournisseur"
 
 #: company/views.py:56
 msgid "New Manufacturer"
-msgstr ""
+msgstr "Nouveau Fabricant"
 
 #: company/views.py:61 templates/InvenTree/search.html:214
 #: templates/navbar.html:55
 msgid "Customers"
-msgstr ""
+msgstr "Clients"
 
 #: company/views.py:62
 msgid "New Customer"
-msgstr ""
+msgstr "Nouveaux Clients"
 
 #: company/views.py:69
 msgid "Companies"
-msgstr ""
+msgstr "Entreprises"
 
 #: company/views.py:70
 msgid "New Company"
-msgstr ""
+msgstr "Nouvelle Entreprise"
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2861,7 +2924,7 @@ msgstr ""
 
 #: label/models.py:134 report/models.py:298
 msgid "Enabled"
-msgstr ""
+msgstr "Activé"
 
 #: label/models.py:135
 msgid "Label template is enabled"
@@ -2877,7 +2940,7 @@ msgstr ""
 
 #: label/models.py:147
 msgid "Height [mm]"
-msgstr ""
+msgstr "Hauteur [mm]"
 
 #: label/models.py:148
 msgid "Label height, specified in mm"
@@ -2896,9 +2959,9 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
-msgstr ""
+msgstr "Filtres"
 
 #: label/models.py:318
 msgid "Query filters (comma-separated list of key=value pairs"
@@ -2910,20 +2973,20 @@ msgstr ""
 
 #: order/forms.py:26 order/templates/order/order_base.html:52
 msgid "Place order"
-msgstr ""
+msgstr "Passer la commande"
 
 #: order/forms.py:37 order/templates/order/order_base.html:59
 msgid "Mark order as complete"
-msgstr ""
+msgstr "Marquer la commande comme complète"
 
 #: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
 #: order/templates/order/sales_order_base.html:60
 msgid "Cancel order"
-msgstr ""
+msgstr "Annuler la commande"
 
 #: order/forms.py:70
 msgid "Ship order"
-msgstr ""
+msgstr "Expédier la commande"
 
 #: order/forms.py:98
 msgid "Enter stock item serial numbers"
@@ -2935,15 +2998,15 @@ msgstr ""
 
 #: order/models.py:161
 msgid "Order description"
-msgstr ""
+msgstr "Description de la commande"
 
 #: order/models.py:163
 msgid "Link to external page"
-msgstr ""
+msgstr "Lien vers une page externe"
 
 #: order/models.py:171
 msgid "Created By"
-msgstr ""
+msgstr "Créé par"
 
 #: order/models.py:178
 msgid "User or group responsible for this order"
@@ -3032,7 +3095,7 @@ msgstr ""
 
 #: order/models.py:589
 msgid "shipped by"
-msgstr ""
+msgstr "expédié par"
 
 #: order/models.py:633
 msgid "SalesOrder cannot be shipped as it is not currently pending"
@@ -3040,7 +3103,7 @@ msgstr ""
 
 #: order/models.py:730
 msgid "Item quantity"
-msgstr ""
+msgstr "Nombre d'élement"
 
 #: order/models.py:736
 msgid "Line item reference"
@@ -3053,7 +3116,7 @@ msgstr ""
 #: order/models.py:768 order/models.py:856
 #: templates/js/translated/order.js:1144
 msgid "Order"
-msgstr ""
+msgstr "Commande"
 
 #: order/models.py:769 order/templates/order/order_base.html:9
 #: order/templates/order/order_base.html:18
@@ -3062,27 +3125,27 @@ msgstr ""
 #: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
 #: templates/js/translated/stock.js:1953
 msgid "Purchase Order"
-msgstr ""
+msgstr "Commande d’achat"
 
 #: order/models.py:790
 msgid "Supplier part"
-msgstr ""
+msgstr "Pièce fournisseur"
 
 #: order/models.py:797 order/templates/order/order_base.html:147
 #: order/templates/order/sales_order_base.html:154
 #: templates/js/translated/order.js:429 templates/js/translated/order.js:932
 msgid "Received"
-msgstr ""
+msgstr "Reçu"
 
 #: order/models.py:798
 msgid "Number of items received"
-msgstr ""
+msgstr "Nombre d'éléments reçus"
 
 #: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
 #: stock/serializers.py:163 stock/templates/stock/item_base.html:332
 #: templates/js/translated/stock.js:1324
 msgid "Purchase Price"
-msgstr ""
+msgstr "Prix d'achat"
 
 #: order/models.py:806
 msgid "Unit purchase price"
@@ -3095,7 +3158,7 @@ msgstr ""
 #: order/models.py:866 part/templates/part/part_pricing.html:112
 #: part/templates/part/prices.html:116 part/templates/part/prices.html:284
 msgid "Sale Price"
-msgstr ""
+msgstr "Prix de vente"
 
 #: order/models.py:867
 msgid "Unit sale price"
@@ -3127,11 +3190,11 @@ msgstr ""
 
 #: order/models.py:975
 msgid "Line"
-msgstr ""
+msgstr "Ligne"
 
 #: order/models.py:987
 msgid "Item"
-msgstr ""
+msgstr "Article"
 
 #: order/models.py:988
 msgid "Select stock item to allocate"
@@ -3143,7 +3206,7 @@ msgstr ""
 
 #: order/serializers.py:167
 msgid "Purchase price currency"
-msgstr ""
+msgstr "Devise du prix d'achat"
 
 #: order/serializers.py:202
 msgid "Line Item"
@@ -3167,7 +3230,7 @@ msgstr ""
 
 #: order/serializers.py:260
 msgid "Barcode is already in use"
-msgstr ""
+msgstr "Le code-barres est déjà utilisé"
 
 #: order/serializers.py:298
 msgid "Line items must be provided"
@@ -3191,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Received against purchase order"
 msgid "Print purchase order report"
-msgstr "Reçu contre bon de commande"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3203,15 +3264,13 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Order Parts"
 msgid "Order actions"
-msgstr "Commander des pièces"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
 msgid "Edit order"
-msgstr ""
+msgstr "Modifier la commande"
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
@@ -3225,7 +3284,7 @@ msgstr ""
 #: order/templates/order/order_base.html:98
 #: order/templates/order/sales_order_base.html:103
 msgid "Order Status"
-msgstr ""
+msgstr "Statut de la commande"
 
 #: order/templates/order/order_base.html:133
 #: report/templates/report/inventree_build_order_base.html:122
@@ -3291,14 +3350,14 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_fields.html:35
 #: part/templates/part/import_wizard/match_fields.html:42
 msgid "Remove column"
-msgstr ""
+msgstr "Supprimer la colonne"
 
 #: order/templates/order/order_wizard/match_fields.html:60
 #: part/templates/part/bom_upload/match_fields.html:60
 #: part/templates/part/import_wizard/ajax_match_fields.html:53
 #: part/templates/part/import_wizard/match_fields.html:60
 msgid "Duplicate selection"
-msgstr ""
+msgstr "Dupliquer la sélection"
 
 #: order/templates/order/order_wizard/match_fields.html:71
 #: order/templates/order/order_wizard/match_parts.html:52
@@ -3311,7 +3370,7 @@ msgstr ""
 #: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
 #: templates/js/translated/order.js:377
 msgid "Remove row"
-msgstr ""
+msgstr "Supprimer la ligne"
 
 #: order/templates/order/order_wizard/match_parts.html:12
 #: part/templates/part/bom_upload/match_parts.html:12
@@ -3325,25 +3384,25 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_references.html:21
 #: part/templates/part/import_wizard/match_references.html:28
 msgid "Row"
-msgstr ""
+msgstr "Ligne"
 
 #: order/templates/order/order_wizard/match_parts.html:29
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3404,9 +3463,45 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Détails"
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
-msgstr ""
+msgstr "Articles de la commande d'achat"
 
 #: order/templates/order/purchase_order_detail.html:27
 #: order/templates/order/purchase_order_detail.html:216
@@ -3423,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3504,7 +3595,7 @@ msgstr ""
 
 #: order/views.py:103
 msgid "Cancel Order"
-msgstr ""
+msgstr "Annuler la commande"
 
 #: order/views.py:112 order/views.py:138
 msgid "Confirm order cancellation"
@@ -3512,11 +3603,11 @@ msgstr ""
 
 #: order/views.py:115 order/views.py:141
 msgid "Order cannot be cancelled"
-msgstr ""
+msgstr "La commande ne peut pas être annulée"
 
 #: order/views.py:129
 msgid "Cancel sales order"
-msgstr ""
+msgstr "Annuler la vente"
 
 #: order/views.py:155
 msgid "Issue Order"
@@ -3532,7 +3623,7 @@ msgstr ""
 
 #: order/views.py:185
 msgid "Complete Order"
-msgstr ""
+msgstr "Finaliser la commande"
 
 #: order/views.py:201
 msgid "Confirm order completion"
@@ -3556,7 +3647,7 @@ msgstr ""
 
 #: order/views.py:535
 msgid "Update prices"
-msgstr ""
+msgstr "Mettre à jour les prix"
 
 #: order/views.py:793
 #, python-brace-format
@@ -3597,7 +3688,7 @@ msgstr ""
 
 #: order/views.py:1078
 msgid "Price not found"
-msgstr ""
+msgstr "Prix introuvable"
 
 #: order/views.py:1081
 #, python-brace-format
@@ -3652,7 +3743,7 @@ msgstr ""
 
 #: part/forms.py:67
 msgid "Levels"
-msgstr ""
+msgstr "Niveaux"
 
 #: part/forms.py:67
 msgid "Select maximum number of BOM levels to export (0 = all levels)"
@@ -3714,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3759,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3827,16 +3916,17 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
-msgstr ""
+msgstr "Catégorie"
 
 #: part/models.py:779
 msgid "Part category"
-msgstr ""
+msgstr "Catégorie de la pièce"
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr "IPN"
 
@@ -3849,9 +3939,9 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
-msgstr ""
+msgstr "Révision"
 
 #: part/models.py:814
 msgid "Where is this item normally stored?"
@@ -3906,11 +3996,11 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
-msgstr ""
+msgstr "Actif"
 
 #: part/models.py:916
 msgid "Is this part active?"
@@ -3946,7 +4036,7 @@ msgstr ""
 
 #: part/models.py:1750
 msgid "Sell multiple"
-msgstr ""
+msgstr "Ventes multiples"
 
 #: part/models.py:2273
 msgid "Test templates can only be created for trackable parts"
@@ -3956,10 +4046,10 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
-msgstr ""
+msgstr "Nom de test"
 
 #: part/models.py:2311
 msgid "Enter a name for the test"
@@ -3973,16 +4063,16 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
-msgstr ""
+msgstr "Requis"
 
 #: part/models.py:2323
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3990,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4022,7 +4112,7 @@ msgstr ""
 
 #: part/models.py:2431
 msgid "Data"
-msgstr ""
+msgstr "Données"
 
 #: part/models.py:2431
 msgid "Parameter Value"
@@ -4052,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4086,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4097,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4168,15 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Supprimer cet élément"
+msgstr "Supprimer l'élément"
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4184,25 +4272,29 @@ msgstr ""
 
 #: part/templates/part/bom_upload/match_parts.html:29
 msgid "Select Part"
+msgstr "Sélectionner une pièce"
+
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4228,38 +4320,28 @@ msgid "Category Actions"
 msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "Sélectionnez une catégorie"
+msgstr "Modifier la catégorie"
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Sélectionnez une catégorie"
+msgstr "Modifier la catégorie"
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Sélectionnez une catégorie"
+msgstr "Supprimer la catégorie"
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Sélectionnez une catégorie"
+msgstr "Supprimer la catégorie"
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Sélectionnez une catégorie"
+msgstr "Nouvelle catégorie"
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4274,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4287,7 +4370,7 @@ msgstr ""
 
 #: part/templates/part/category.html:146 part/templates/part/category.html:170
 msgid "Export"
-msgstr ""
+msgstr "Exporter"
 
 #: part/templates/part/category.html:149
 msgid "Create new part"
@@ -4360,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4385,10 +4472,8 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Details"
 msgid "Part Details"
-msgstr "Détails"
+msgstr ""
 
 #: part/templates/part/detail.html:66
 msgid "Minimum stock level"
@@ -4435,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4443,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4610,7 +4703,7 @@ msgstr ""
 
 #: part/templates/part/part_base.html:90
 msgid "Edit part"
-msgstr ""
+msgstr "Modifier la pièce"
 
 #: part/templates/part/part_base.html:93
 msgid "Delete part"
@@ -4646,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4659,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4679,18 +4772,18 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
 #: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
 msgid "Calculate"
-msgstr ""
+msgstr "Calculer"
 
 #: part/templates/part/part_base.html:363
 msgid "No matching images found"
@@ -4719,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4730,7 +4823,7 @@ msgstr ""
 
 #: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69
 msgid "Unit Purchase Price"
-msgstr ""
+msgstr "Prix d’achat unitaire"
 
 #: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76
 msgid "Total Purchase Price"
@@ -4753,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr "Tester le modèle"
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4817,13 +4921,13 @@ msgstr ""
 
 #: part/templates/part/prices.html:118
 msgid "Show sale price"
-msgstr ""
+msgstr "Afficher le prix de vente"
 
 #: part/templates/part/prices.html:140
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4831,7 +4935,7 @@ msgstr ""
 #: part/templates/part/prices.html:201 part/templates/part/prices.html:231
 #: part/templates/part/prices.html:257 part/templates/part/prices.html:285
 msgid "Jump to overview"
-msgstr ""
+msgstr "Aller à la vue d'ensemble"
 
 #: part/templates/part/prices.html:181
 msgid "Stock Pricing"
@@ -4845,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4865,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4888,139 +4992,126 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
-msgstr ""
+msgstr "Nom du modèle"
 
 #: report/models.py:188
 msgid "Report template file"
@@ -5054,68 +5145,63 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
-msgstr ""
+msgstr "Extrait "
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
-msgstr ""
+msgstr "Elément"
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
 #: report/templates/report/inventree_build_order_base.html:147
 msgid "Required For"
-msgstr ""
-
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
+msgstr "Requis pour"
 
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5124,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5217,11 +5294,11 @@ msgstr ""
 #: stock/models.py:60 stock/models.py:624
 #: stock/templates/stock/item_base.html:422
 msgid "Owner"
-msgstr ""
+msgstr "Propriétaire"
 
 #: stock/models.py:61 stock/models.py:625
 msgid "Select Owner"
-msgstr ""
+msgstr "Sélectionner un propriétaire"
 
 #: stock/models.py:352
 msgid "StockItem with this serial number already exists"
@@ -5391,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5425,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "No serial numbers found"
 msgid "Enter serial numbers for new items"
-msgstr "Aucun numéro de série trouvé"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5471,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5592,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5780,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5812,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6059,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6082,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6108,10 +6190,8 @@ msgid "Edit Global Setting"
 msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit User Information"
 msgid "Edit User Setting"
-msgstr "Modifier les informations utilisateur"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6131,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6139,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6236,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Sélectionnez une catégorie"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6262,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6279,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Sélectionnez une catégorie"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6305,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6411,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6480,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Entrer le mot de passe"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6536,15 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Quantité"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr "Disponible"
@@ -6572,10 +6683,8 @@ msgid "Total Stock"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Quantity"
 msgid "Minimum Quantity"
-msgstr "Quantité"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6593,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6768,98 +6956,94 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
-#, fuzzy
-#| msgid "Available"
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
-msgstr "Disponible"
+msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Séparer de l'élément parent"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -6968,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7001,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7027,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7039,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7203,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7256,7 +7430,7 @@ msgstr ""
 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
 #: templates/js/translated/modals.js:593
 msgid "Cancel"
-msgstr ""
+msgstr "Annuler"
 
 #: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
 #: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
@@ -7429,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7505,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7797,16 +7913,12 @@ msgid "Enter serial numbers for new stock (or leave blank)"
 msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created new stock item"
-msgstr "Article de stock modifié"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created multiple stock items"
-msgstr "Article de stock modifié"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -7953,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8001,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Détails"
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8041,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8061,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr "A un IPN"
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8297,7 +8409,7 @@ msgstr ""
 
 #: templates/navbar.html:52
 msgid "Sell"
-msgstr ""
+msgstr "Ventes"
 
 #: templates/navbar.html:86 users/models.py:39
 msgid "Admin"
@@ -8499,5 +8611,3 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr ""
 
-#~ msgid "Save"
-#~ msgstr "Enregistrer"
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 5e6fa2cfee..d000923de9 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Hebrew\n"
 "Language: he_IL\n"
@@ -132,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -185,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -216,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4248,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4334,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4415,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4618,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4631,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4651,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4691,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4725,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4795,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4817,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4837,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4860,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5026,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5078,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5096,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5363,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5441,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5562,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5750,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5782,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6029,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6052,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6099,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6107,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6228,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6245,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6269,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6375,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6498,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6551,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6726,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6922,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6955,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6981,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6993,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7157,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7383,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7459,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7903,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7951,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7991,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8011,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8448,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 39780487cc..23dc8fdee7 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Indonesian\n"
 "Language: id_ID\n"
@@ -19,62 +19,62 @@ msgstr ""
 
 #: InvenTree/api.py:64
 msgid "API endpoint not found"
-msgstr ""
+msgstr "API endpoint tidak ditemukan"
 
 #: InvenTree/api.py:110
 msgid "No action specified"
-msgstr ""
+msgstr "Tidak ada tindakan yang ditentukan"
 
 #: InvenTree/api.py:124
 msgid "No matching action found"
-msgstr ""
+msgstr "Aksi tidak ditemukan"
 
 #: InvenTree/fields.py:100
 msgid "Enter date"
-msgstr ""
+msgstr "Masukkan tanggal"
 
 #: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
 #: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
 #: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
 #: templates/js/translated/forms.js:594
 msgid "Confirm"
-msgstr ""
+msgstr "Konfirmasi"
 
 #: InvenTree/forms.py:136
 msgid "Confirm delete"
-msgstr ""
+msgstr "Konfirmasi penghapusan"
 
 #: InvenTree/forms.py:137
 msgid "Confirm item deletion"
-msgstr ""
+msgstr "Konfirmasi penghapusan item"
 
 #: InvenTree/forms.py:168
 msgid "Enter password"
-msgstr ""
+msgstr "Masukkan sandi"
 
 #: InvenTree/forms.py:169
 msgid "Enter new password"
-msgstr ""
+msgstr "Masukkan kata sandi baru"
 
 #: InvenTree/forms.py:176
 msgid "Confirm password"
-msgstr ""
+msgstr "Konfirmasikan kata sandi"
 
 #: InvenTree/forms.py:177
 msgid "Confirm new password"
-msgstr ""
+msgstr "Konfirmasi sandi baru"
 
 #: InvenTree/forms.py:209
 msgid "Select Category"
-msgstr ""
+msgstr "Pilih Kategori"
 
 #: InvenTree/forms.py:230
 msgid "Email (again)"
-msgstr ""
+msgstr "Email (ulang)"
 
 #: InvenTree/forms.py:234
 msgid "Email address confirmation"
-msgstr ""
+msgstr "Konfirmasi alamat email"
 
 #: InvenTree/forms.py:254
 msgid "You must type the same email each time."
@@ -132,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -185,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -216,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4248,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4334,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4415,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4618,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4631,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4651,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4691,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4725,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4795,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4817,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4837,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4860,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5026,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5078,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5096,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5363,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5441,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5562,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5750,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5782,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6029,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6052,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6099,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6107,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6228,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6245,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6269,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6375,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6498,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6551,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6726,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6922,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6955,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6981,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6993,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7157,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7383,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7459,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7903,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7951,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7991,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8011,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8448,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index f585ef8df7..447efc9d11 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Italian\n"
 "Language: it_IT\n"
@@ -70,15 +70,15 @@ msgstr "Selezione una categoria"
 
 #: InvenTree/forms.py:230
 msgid "Email (again)"
-msgstr ""
+msgstr "Email (ancora)"
 
 #: InvenTree/forms.py:234
 msgid "Email address confirmation"
-msgstr ""
+msgstr "Conferma indirizzo email"
 
 #: InvenTree/forms.py:254
 msgid "You must type the same email each time."
-msgstr ""
+msgstr "È necessario digitare la stessa e-mail ogni volta."
 
 #: InvenTree/helpers.py:430
 #, python-brace-format
@@ -132,7 +132,7 @@ msgstr "Commento del file"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Utente"
@@ -173,8 +173,9 @@ msgstr "Scelta non valida"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Nome"
@@ -185,18 +186,19 @@ msgstr "Nome"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Descrizione"
 
@@ -216,83 +218,83 @@ msgstr "Deve essere un numero valido"
 msgid "Filename"
 msgstr "Nome del file"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Tedesco"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Greco"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Inglese"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Spagnolo"
 
-#: InvenTree/settings.py:667
-msgid "Spanish (Mexican)"
-msgstr ""
-
 #: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr "Spagnolo (Messicano)"
+
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Francese"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Ebraico"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Italiano"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Giapponese"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Coreano"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Olandese"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Norvegese"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polacco"
 
-#: InvenTree/settings.py:676
-msgid "Portugese"
-msgstr ""
-
 #: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr "Portoghese"
+
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Russo"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Svedese"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Thailandese"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Turco"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Vietnamita"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Cinese"
 
@@ -417,7 +419,7 @@ msgstr "Diviso dall'elemento genitore"
 msgid "Split child item"
 msgstr "Dividi elemento figlio"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Inviato al cliente"
 
@@ -452,94 +454,94 @@ msgstr "Carattere non valido nel nome del file"
 #: InvenTree/validators.py:64
 #, python-brace-format
 msgid "IPN must match regex pattern {pat}"
-msgstr ""
+msgstr "IPN deve corrispondere al modello regex {pat}"
 
 #: InvenTree/validators.py:78 InvenTree/validators.py:92
 #: InvenTree/validators.py:106
 #, python-brace-format
 msgid "Reference must match pattern {pattern}"
-msgstr ""
+msgstr "Il campo deve corrispondere con il modello {pattern}"
 
 #: InvenTree/validators.py:114
 #, python-brace-format
 msgid "Illegal character in name ({x})"
-msgstr ""
+msgstr "Carattere illegale nel nome ({x})"
 
 #: InvenTree/validators.py:133 InvenTree/validators.py:149
 msgid "Overage value must not be negative"
-msgstr ""
+msgstr "Il sovra-valore non può essere negativo"
 
 #: InvenTree/validators.py:151
 msgid "Overage must not exceed 100%"
-msgstr ""
+msgstr "L'eccesso non deve superare il 100%"
 
 #: InvenTree/validators.py:158
 msgid "Overage must be an integer value or a percentage"
-msgstr ""
+msgstr "Il superamento deve essere un valore intero o una percentuale"
 
 #: InvenTree/views.py:536
 msgid "Delete Item"
-msgstr ""
+msgstr "Cancella elemento"
 
 #: InvenTree/views.py:585
 msgid "Check box to confirm item deletion"
-msgstr ""
+msgstr "Spunta la casella per confermare l'eliminazione dell'elemento"
 
 #: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
 msgid "Edit User Information"
-msgstr ""
+msgstr "Modifica informazioni utente"
 
 #: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
 msgid "Set Password"
-msgstr ""
+msgstr "Imposta Password"
 
 #: InvenTree/views.py:630
 msgid "Password fields must match"
-msgstr ""
+msgstr "Le password devono coincidere"
 
 #: InvenTree/views.py:863 templates/navbar.html:101
 msgid "System Information"
-msgstr ""
+msgstr "Informazioni sistema"
 
 #: barcodes/api.py:53 barcodes/api.py:150
 msgid "Must provide barcode_data parameter"
-msgstr ""
+msgstr "È necessario fornire il parametro barcode_data"
 
 #: barcodes/api.py:126
 msgid "No match found for barcode data"
-msgstr ""
+msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
 
 #: barcodes/api.py:128
 msgid "Match found for barcode data"
-msgstr ""
+msgstr "Corrispondenza trovata per i dati del codice a barre"
 
 #: barcodes/api.py:153
 msgid "Must provide stockitem parameter"
-msgstr ""
+msgstr "È necessario fornire il parametro stockitem"
 
 #: barcodes/api.py:160
 msgid "No matching stock item found"
-msgstr ""
+msgstr "Nessun elemento corrispondente trovato"
 
 #: barcodes/api.py:190
 msgid "Barcode already matches StockItem object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'oggetto StockItem"
 
 #: barcodes/api.py:194
 msgid "Barcode already matches StockLocation object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'oggetto StockItem"
 
 #: barcodes/api.py:198
 msgid "Barcode already matches Part object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'articolo"
 
 #: barcodes/api.py:204 barcodes/api.py:216
 msgid "Barcode hash already matches StockItem object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'articolo in giacenza"
 
 #: barcodes/api.py:222
 msgid "Barcode associated with StockItem"
-msgstr ""
+msgstr "Codice a barre associato all'articolo in giacenza"
 
 #: build/forms.py:36 build/models.py:1283
 #: build/templates/build/build_base.html:124
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,33 +568,33 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Quantità"
 
 #: build/forms.py:37
 msgid "Enter quantity for build output"
-msgstr ""
+msgstr "Inserisci la quantità per l'output di compilazione"
 
 #: build/forms.py:41 order/forms.py:96 stock/forms.py:95
 #: stock/serializers.py:307 templates/js/translated/stock.js:194
 #: templates/js/translated/stock.js:348
 msgid "Serial Numbers"
-msgstr ""
+msgstr "Codice Seriale"
 
 #: build/forms.py:43
 msgid "Enter serial numbers for build outputs"
-msgstr ""
+msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)"
 
 #: build/forms.py:49
 msgid "Confirm creation of build output"
-msgstr ""
+msgstr "Conferma la creazione dell'output di compilazione"
 
 #: build/forms.py:70
 msgid "Confirm deletion of build output"
-msgstr ""
+msgstr "Conferma la creazione dell'output di compilazione"
 
 #: build/forms.py:94
 msgid "Mark build as complete"
@@ -601,7 +602,7 @@ msgstr ""
 
 #: build/forms.py:107
 msgid "Confirm cancel"
-msgstr ""
+msgstr "Conferma annullamento"
 
 #: build/forms.py:107 build/views.py:65
 msgid "Confirm build cancellation"
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,10 +638,10 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
-msgstr ""
+msgstr "Riferimento"
 
 #: build/models.py:210
 msgid "Brief description of the build"
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,17 +672,17 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
-msgstr ""
+msgstr "Articolo"
 
 #: build/models.py:233
 msgid "Select part to build"
@@ -687,7 +690,7 @@ msgstr ""
 
 #: build/models.py:238
 msgid "Sales Order Reference"
-msgstr ""
+msgstr "Numero di riferimento ordine di vendita"
 
 #: build/models.py:242
 msgid "SalesOrder to which this build is allocated"
@@ -695,19 +698,19 @@ msgstr ""
 
 #: build/models.py:247 templates/js/translated/build.js:1347
 msgid "Source Location"
-msgstr ""
+msgstr "Posizione Di Origine"
 
 #: build/models.py:251
 msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr ""
+msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)"
 
 #: build/models.py:256
 msgid "Destination Location"
-msgstr ""
+msgstr "Posizione Della Destinazione"
 
 #: build/models.py:260
 msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati"
 
 #: build/models.py:264
 msgid "Build Quantity"
@@ -719,7 +722,7 @@ msgstr ""
 
 #: build/models.py:271
 msgid "Completed items"
-msgstr ""
+msgstr "Articoli completati"
 
 #: build/models.py:273
 msgid "Number of stock items which have been completed"
@@ -744,11 +747,11 @@ msgstr ""
 #: build/models.py:292 order/models.py:165 part/models.py:936
 #: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
 msgid "Creation Date"
-msgstr ""
+msgstr "Data di creazione"
 
 #: build/models.py:296 order/models.py:578
 msgid "Target completion date"
-msgstr ""
+msgstr "Data completamento obiettivo"
 
 #: build/models.py:297
 msgid "Target date for build completion. Build will be overdue after this date."
@@ -757,15 +760,15 @@ msgstr ""
 #: build/models.py:300 order/models.py:291
 #: templates/js/translated/build.js:1697
 msgid "Completion Date"
-msgstr ""
+msgstr "Data di completamento"
 
 #: build/models.py:306
 msgid "completed by"
-msgstr ""
+msgstr "Completato da"
 
 #: build/models.py:314 templates/js/translated/build.js:1668
 msgid "Issued by"
-msgstr ""
+msgstr "Rilasciato da"
 
 #: build/models.py:315
 msgid "User who issued this build order"
@@ -778,7 +781,7 @@ msgstr ""
 #: report/templates/report/inventree_build_order_base.html:159
 #: templates/js/translated/build.js:1680
 msgid "Responsible"
-msgstr ""
+msgstr "Responsabile"
 
 #: build/models.py:324
 msgid "User responsible for this build order"
@@ -790,24 +793,31 @@ msgstr ""
 #: part/templates/part/detail.html:80 stock/models.py:538
 #: stock/templates/stock/item_base.html:346
 msgid "External Link"
-msgstr ""
+msgstr "Collegamento esterno"
 
 #: build/models.py:330 part/models.py:798 stock/models.py:540
 msgid "Link to external URL"
-msgstr ""
+msgstr "Link a URL esterno"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
-msgstr ""
+msgstr "Note"
 
 #: build/models.py:335
 msgid "Extra build notes"
@@ -832,23 +842,23 @@ msgstr ""
 #: build/models.py:1117
 #, python-brace-format
 msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
-msgstr ""
+msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
 
 #: build/models.py:1127
 msgid "Stock item is over-allocated"
-msgstr ""
+msgstr "L'articolo in giacenza è sovrallocato"
 
 #: build/models.py:1133 order/models.py:964
 msgid "Allocation quantity must be greater than zero"
-msgstr ""
+msgstr "La quantità di assegnazione deve essere maggiore di zero"
 
 #: build/models.py:1139
 msgid "Quantity must be 1 for serialized stock"
-msgstr ""
+msgstr "La quantità deve essere 1 per lo stock serializzato"
 
 #: build/models.py:1193
 msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "Articolo in giacenza selezionato non trovato nel BOM"
 
 #: build/models.py:1253 stock/templates/stock/item_base.html:318
 #: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
@@ -869,11 +879,11 @@ msgstr ""
 #: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
 #: templates/js/translated/stock.js:1990
 msgid "Stock Item"
-msgstr ""
+msgstr "Articoli in magazzino"
 
 #: build/models.py:1271
 msgid "Source stock item"
-msgstr ""
+msgstr "Origine giacenza articolo"
 
 #: build/models.py:1284
 msgid "Stock quantity to allocate to build"
@@ -881,11 +891,11 @@ msgstr ""
 
 #: build/models.py:1292
 msgid "Install into"
-msgstr ""
+msgstr "Installa in"
 
 #: build/models.py:1293
 msgid "Destination stock item"
-msgstr ""
+msgstr "Destinazione articolo in giacenza"
 
 #: build/serializers.py:137 build/serializers.py:357
 msgid "Build Output"
@@ -914,15 +924,15 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
-msgstr ""
+msgstr "Posizione"
 
 #: build/serializers.py:191
 msgid "Location for completed build outputs"
-msgstr ""
+msgstr "Posizione per gli output di build completati"
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -932,7 +942,7 @@ msgstr ""
 #: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
 #: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
 msgid "Status"
-msgstr ""
+msgstr "Stato"
 
 #: build/serializers.py:213
 msgid "A list of build outputs must be provided"
@@ -941,13 +951,11 @@ msgstr ""
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
 msgid "BOM Item"
-msgstr ""
+msgstr "Distinta base (Bom)"
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build order output created"
 msgid "Build output"
-msgstr "Genera l'output dell'ordine creato"
+msgstr ""
 
 #: build/serializers.py:278
 msgid "Build output must point to the same build"
@@ -959,17 +967,17 @@ msgstr ""
 
 #: build/serializers.py:334
 msgid "Item must be in stock"
-msgstr ""
+msgstr "L'articolo deve essere disponibile"
 
 #: build/serializers.py:348 order/models.py:316 order/serializers.py:231
 #: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
 msgid "Quantity must be greater than zero"
-msgstr ""
+msgstr "La quantità deve essere maggiore di zero"
 
 #: build/serializers.py:390
 #, python-brace-format
 msgid "Available quantity ({q}) exceeded"
-msgstr ""
+msgstr "Quantità disponibile ({q}) superata"
 
 #: build/serializers.py:396
 msgid "Build output must be specified for allocation of tracked parts"
@@ -981,7 +989,7 @@ msgstr ""
 
 #: build/serializers.py:431
 msgid "Allocation items must be provided"
-msgstr ""
+msgstr "Deve essere indicata l'allocazione dell'articolo"
 
 #: build/tasks.py:92
 msgid "Stock required for build order"
@@ -991,7 +999,7 @@ msgstr ""
 #: order/templates/order/order_base.html:28
 #: order/templates/order/sales_order_base.html:38
 msgid "Print actions"
-msgstr ""
+msgstr "Azioni di stampa"
 
 #: build/templates/build/build_base.html:43
 msgid "Print build order report"
@@ -1054,7 +1062,7 @@ msgstr ""
 #: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
 #: templates/js/translated/order.js:1087
 msgid "Target Date"
-msgstr ""
+msgstr "Data scadenza"
 
 #: build/templates/build/build_base.html:143
 #, python-format
@@ -1067,18 +1075,18 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
-msgstr ""
+msgstr "In ritardo"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
-msgstr ""
+msgstr "Completato"
 
 #: build/templates/build/build_base.html:163
 #: build/templates/build/detail.html:95 order/models.py:857
@@ -1090,17 +1098,17 @@ msgstr ""
 #: stock/templates/stock/item_base.html:280
 #: templates/js/translated/order.js:1029
 msgid "Sales Order"
-msgstr ""
+msgstr "Ordini di Vendita"
 
 #: build/templates/build/build_base.html:170
 #: build/templates/build/detail.html:109
 #: report/templates/report/inventree_build_order_base.html:153
 msgid "Issued By"
-msgstr ""
+msgstr "Inviato da"
 
 #: build/templates/build/build_base.html:215
 msgid "Incomplete Outputs"
-msgstr ""
+msgstr "Output Incompleti"
 
 #: build/templates/build/build_base.html:216
 msgid "Build Order cannot be completed as incomplete build outputs remain"
@@ -1108,7 +1116,7 @@ msgstr ""
 
 #: build/templates/build/build_output_create.html:7
 msgid "The Bill of Materials contains trackable parts"
-msgstr ""
+msgstr "La distinta base contiene articoli tracciabili"
 
 #: build/templates/build/build_output_create.html:8
 msgid "Build outputs must be generated individually."
@@ -1160,16 +1168,16 @@ msgstr ""
 
 #: build/templates/build/detail.html:44
 msgid "Stock can be taken from any available location."
-msgstr ""
+msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
 
 #: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
 #: templates/js/translated/order.js:432 templates/js/translated/order.js:952
 msgid "Destination"
-msgstr ""
+msgstr "Destinazione"
 
 #: build/templates/build/detail.html:57
 msgid "Destination location not specified"
-msgstr ""
+msgstr "Posizione di destinazione non specificata"
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
 msgid "Allocated Parts"
@@ -1178,27 +1186,27 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
-msgstr ""
+msgstr "Lotto"
 
 #: build/templates/build/detail.html:127
 #: order/templates/order/order_base.html:127
 #: order/templates/order/sales_order_base.html:134
 #: templates/js/translated/build.js:1663
 msgid "Created"
-msgstr ""
+msgstr "Creato"
 
 #: build/templates/build/detail.html:138
 msgid "No target date set"
-msgstr ""
+msgstr "Nessuna data di destinazione impostata"
 
 #: build/templates/build/detail.html:147
 msgid "Build not complete"
-msgstr ""
+msgstr "Build Completata"
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1218,20 +1226,20 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
 #: build/templates/build/detail.html:184
 msgid "Order required parts"
-msgstr ""
+msgstr "Ordina articoli richiesti"
 
 #: build/templates/build/detail.html:185
 #: company/templates/company/detail.html:38
 #: company/templates/company/detail.html:85 order/views.py:509
 #: part/templates/part/category.html:166
 msgid "Order Parts"
-msgstr ""
+msgstr "Ordine Articoli"
 
 #: build/templates/build/detail.html:197
 msgid "Untracked stock has been fully allocated for this Build Order"
@@ -1270,25 +1278,27 @@ msgid "Complete selected items"
 msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Complete"
 msgid "Complete outputs"
-msgstr "Completo"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
-msgstr ""
+msgstr "Allegati"
 
 #: build/templates/build/detail.html:294
 msgid "Build Notes"
-msgstr ""
+msgstr "Genera Note"
 
 #: build/templates/build/detail.html:298 build/templates/build/detail.html:489
 #: company/templates/company/detail.html:188
@@ -1300,47 +1310,51 @@ msgstr ""
 #: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
 #: stock/templates/stock/item.html:205
 msgid "Edit Notes"
-msgstr ""
+msgstr "Modifica Note"
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
-msgstr ""
+msgstr "Aggiungi allegato"
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
-msgstr ""
+msgstr "Modifica allegato"
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
-msgstr ""
+msgstr "Conferma Operazione Eliminazione"
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
-msgstr ""
+msgstr "Elimina allegato"
 
 #: build/templates/build/detail.html:513
 msgid "Allocation Complete"
-msgstr ""
+msgstr "Assegnazione Completa"
 
 #: build/templates/build/detail.html:514
 msgid "All untracked stock items have been allocated"
-msgstr ""
+msgstr "Tutte le giacenze non tracciate sono state assegnate"
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1352,12 +1366,24 @@ msgstr ""
 #: order/templates/order/purchase_orders.html:34
 #: order/templates/order/sales_orders.html:37
 msgid "Display calendar view"
-msgstr ""
+msgstr "Visualizzazione calendario"
 
 #: build/templates/build/index.html:47
 #: order/templates/order/purchase_orders.html:37
 #: order/templates/order/sales_orders.html:40
 msgid "Display list view"
+msgstr "Visualizzazione elenco"
+
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
 msgstr ""
 
 #: build/views.py:76
@@ -1374,7 +1400,7 @@ msgstr ""
 
 #: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
 msgid "Serial numbers already exist"
-msgstr ""
+msgstr "Numeri di serie già esistenti"
 
 #: build/views.py:131
 msgid "Serial numbers required for trackable build output"
@@ -1418,168 +1444,168 @@ msgstr ""
 
 #: build/views.py:319
 msgid "Delete Build Order"
-msgstr ""
+msgstr "Elimina Ordine Build"
 
 #: common/files.py:67
 msgid "Unsupported file format: {ext.upper()}"
-msgstr ""
+msgstr "Formato file non supportato: {ext.upper()}"
 
 #: common/files.py:69
 msgid "Error reading file (invalid encoding)"
-msgstr ""
+msgstr "Errore nella lettura del file (codifica non valida)"
 
 #: common/files.py:74
 msgid "Error reading file (invalid format)"
-msgstr ""
+msgstr "Errore nella lettura del file (formato non valido)"
 
 #: common/files.py:76
 msgid "Error reading file (incorrect dimension)"
-msgstr ""
+msgstr "Errore nella lettura del file (dimensione errata)"
 
 #: common/files.py:78
 msgid "Error reading file (data could be corrupted)"
-msgstr ""
+msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)"
 
 #: common/forms.py:34 templates/js/translated/attachment.js:54
 msgid "File"
-msgstr ""
+msgstr "File"
 
 #: common/forms.py:35
 msgid "Select file to upload"
-msgstr ""
+msgstr "Seleziona file da caricare"
 
 #: common/forms.py:50
 msgid "{name.title()} File"
-msgstr ""
+msgstr "{name.title()} File"
 
 #: common/forms.py:51
 #, python-brace-format
 msgid "Select {name} file to upload"
-msgstr ""
+msgstr "Seleziona il file {name} da caricare"
 
 #: common/models.py:340 common/models.py:970 common/models.py:1178
 msgid "Settings key (must be unique - case insensitive"
-msgstr ""
+msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
 
 #: common/models.py:342
 msgid "Settings value"
-msgstr ""
+msgstr "Valore impostazioni"
 
 #: common/models.py:377
 msgid "Must be an integer value"
-msgstr ""
+msgstr "Deve essere un valore intero"
 
 #: common/models.py:382
 msgid "Chosen value is not a valid option"
-msgstr ""
+msgstr "Il valore specificato non è un opzione valida"
 
 #: common/models.py:405
 msgid "Value must be a boolean value"
-msgstr ""
+msgstr "Il valore deve essere un valore booleano"
 
 #: common/models.py:416
 msgid "Value must be an integer value"
-msgstr ""
+msgstr "Il valore deve essere un intero"
 
 #: common/models.py:439
 msgid "Key string must be unique"
-msgstr ""
+msgstr "La stringa chiave deve essere univoca"
 
 #: common/models.py:559
 msgid "No group"
-msgstr ""
+msgstr "Nessun gruppo"
 
 #: common/models.py:601
 msgid "Restart required"
-msgstr ""
+msgstr "Riavvio richiesto"
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
-msgstr ""
+msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
 
 #: common/models.py:609
 msgid "InvenTree Instance Name"
-msgstr ""
+msgstr "Nome Istanza InvenTree"
 
 #: common/models.py:611
 msgid "String descriptor for the server instance"
-msgstr ""
+msgstr "Descrittore stringa per l'istanza del server"
 
 #: common/models.py:615
 msgid "Use instance name"
-msgstr ""
+msgstr "Utilizza nome istanza"
 
 #: common/models.py:616
 msgid "Use the instance name in the title-bar"
-msgstr ""
+msgstr "Usa il nome dell'istanza nella barra del titolo"
 
 #: common/models.py:622 company/models.py:100 company/models.py:101
 msgid "Company name"
-msgstr ""
+msgstr "Nome azienda"
 
 #: common/models.py:623
 msgid "Internal company name"
-msgstr ""
+msgstr "Nome interno dell'azienda"
 
 #: common/models.py:628
 msgid "Base URL"
-msgstr ""
+msgstr "URL Base"
 
 #: common/models.py:629
 msgid "Base URL for server instance"
-msgstr ""
+msgstr "URL di base per l'istanza del server"
 
 #: common/models.py:635
 msgid "Default Currency"
-msgstr ""
+msgstr "Valuta predefinita"
 
 #: common/models.py:636
 msgid "Default currency"
-msgstr ""
+msgstr "Valuta predefinita"
 
 #: common/models.py:642
 msgid "Download from URL"
-msgstr ""
+msgstr "Scarica dall'URL"
 
 #: common/models.py:643
 msgid "Allow download of remote images and files from external URL"
-msgstr ""
+msgstr "Consenti il download di immagini e file remoti da URL esterno"
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
-msgstr ""
+msgstr "Supporto Codice A Barre"
 
 #: common/models.py:650
 msgid "Enable barcode scanner support"
-msgstr ""
+msgstr "Abilita supporto scanner codici a barre"
 
 #: common/models.py:656
 msgid "IPN Regex"
-msgstr ""
+msgstr "IPN Regex"
 
 #: common/models.py:657
 msgid "Regular expression pattern for matching Part IPN"
-msgstr ""
+msgstr "Schema di espressione regolare per l'articolo corrispondente IPN"
 
 #: common/models.py:661
 msgid "Allow Duplicate IPN"
-msgstr ""
+msgstr "Consenti duplicati IPN"
 
 #: common/models.py:662
 msgid "Allow multiple parts to share the same IPN"
-msgstr ""
+msgstr "Permetti a più articoli di condividere lo stesso IPN"
 
 #: common/models.py:668
 msgid "Allow Editing IPN"
-msgstr ""
+msgstr "Permetti modifiche al part number interno (IPN)"
 
 #: common/models.py:669
 msgid "Allow changing the IPN value while editing a part"
-msgstr ""
+msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo"
 
 #: common/models.py:675
 msgid "Copy Part BOM Data"
-msgstr ""
+msgstr "Copia I Dati Della distinta base dell'articolo"
 
 #: common/models.py:676
 msgid "Copy BOM data by default when duplicating a part"
@@ -1587,11 +1613,11 @@ msgstr ""
 
 #: common/models.py:682
 msgid "Copy Part Parameter Data"
-msgstr ""
+msgstr "Copia I Dati Parametro dell'articolo"
 
 #: common/models.py:683
 msgid "Copy parameter data by default when duplicating a part"
-msgstr ""
+msgstr "Copia i dati dei parametri di default quando si duplica un articolo"
 
 #: common/models.py:689
 msgid "Copy Part Test Data"
@@ -1599,194 +1625,194 @@ msgstr ""
 
 #: common/models.py:690
 msgid "Copy test data by default when duplicating a part"
-msgstr ""
+msgstr "Copia i dati di prova di default quando si duplica un articolo"
 
 #: common/models.py:696
 msgid "Copy Category Parameter Templates"
-msgstr ""
+msgstr "Copia Template Parametri Categoria"
 
 #: common/models.py:697
 msgid "Copy category parameter templates when creating a part"
-msgstr ""
+msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
-msgstr ""
+msgstr "Template"
 
 #: common/models.py:704
 msgid "Parts are templates by default"
-msgstr ""
+msgstr "Gli articoli sono modelli per impostazione predefinita"
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
-msgstr ""
+msgstr "Assemblaggio"
 
 #: common/models.py:711
 msgid "Parts can be assembled from other components by default"
-msgstr ""
+msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
-msgstr ""
+msgstr "Componente"
 
 #: common/models.py:718
 msgid "Parts can be used as sub-components by default"
-msgstr ""
+msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita"
 
 #: common/models.py:724 part/models.py:905
 msgid "Purchaseable"
-msgstr ""
+msgstr "Acquistabile"
 
 #: common/models.py:725
 msgid "Parts are purchaseable by default"
-msgstr ""
+msgstr "Gli articoli sono acquistabili per impostazione predefinita"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
-msgstr ""
+msgstr "Vendibile"
 
 #: common/models.py:732
 msgid "Parts are salable by default"
-msgstr ""
+msgstr "Gli articoli sono acquistabili per impostazione predefinita"
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
-msgstr ""
+msgstr "Tracciabile"
 
 #: common/models.py:739
 msgid "Parts are trackable by default"
-msgstr ""
+msgstr "Gli articoli sono tracciabili per impostazione predefinita"
 
 #: common/models.py:745 part/models.py:920
 #: part/templates/part/part_base.html:144
 #: templates/js/translated/table_filters.js:42
 msgid "Virtual"
-msgstr ""
+msgstr "Virtuale"
 
 #: common/models.py:746
 msgid "Parts are virtual by default"
-msgstr ""
+msgstr "Gli articoli sono virtuali per impostazione predefinita"
 
 #: common/models.py:752
 msgid "Show Import in Views"
-msgstr ""
+msgstr "Mostra l'importazione nelle viste"
 
 #: common/models.py:753
 msgid "Display the import wizard in some part views"
-msgstr ""
+msgstr "Mostra la procedura guidata di importazione in alcune viste articoli"
 
 #: common/models.py:759
 msgid "Show Price in Forms"
-msgstr ""
+msgstr "Mostra il prezzo nei moduli"
 
 #: common/models.py:760
 msgid "Display part price in some forms"
-msgstr ""
+msgstr "Mostra il prezzo dell'articolo in alcuni moduli"
 
 #: common/models.py:771
 msgid "Show Price in BOM"
-msgstr ""
+msgstr "Mostra il prezzo nella BOM"
 
 #: common/models.py:772
 msgid "Include pricing information in BOM tables"
-msgstr ""
+msgstr "Includi le informazioni sui prezzi nelle tabelle BOM"
 
 #: common/models.py:778
 msgid "Show related parts"
-msgstr ""
+msgstr "Mostra articoli correlati"
 
 #: common/models.py:779
 msgid "Display related parts for a part"
-msgstr ""
+msgstr "Visualizza parti correlate per ogni articolo"
 
 #: common/models.py:785
 msgid "Create initial stock"
-msgstr ""
+msgstr "Crea giacenza iniziale"
 
 #: common/models.py:786
 msgid "Create initial stock on part creation"
-msgstr ""
+msgstr "Crea giacenza iniziale sulla creazione articolo"
 
 #: common/models.py:792
 msgid "Internal Prices"
-msgstr ""
+msgstr "Prezzi interni"
 
 #: common/models.py:793
 msgid "Enable internal prices for parts"
-msgstr ""
+msgstr "Abilita prezzi interni per gli articoli"
 
 #: common/models.py:799
 msgid "Internal Price as BOM-Price"
-msgstr ""
+msgstr "Prezzo interno come BOM-Price"
 
 #: common/models.py:800
 msgid "Use the internal price (if set) in BOM-price calculations"
-msgstr ""
+msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM"
 
 #: common/models.py:806
 msgid "Part Name Display Format"
-msgstr ""
+msgstr "Formato di visualizzazione del nome articolo"
 
 #: common/models.py:807
 msgid "Format to display the part name"
-msgstr ""
+msgstr "Formato per visualizzare il nome dell'articolo"
 
 #: common/models.py:814
 msgid "Enable Reports"
-msgstr ""
+msgstr "Abilita Report di Stampa"
 
 #: common/models.py:815
 msgid "Enable generation of reports"
-msgstr ""
+msgstr "Abilita generazione di report di stampa"
 
 #: common/models.py:821 templates/stats.html:25
 msgid "Debug Mode"
-msgstr ""
+msgstr "Modalità Debug"
 
 #: common/models.py:822
 msgid "Generate reports in debug mode (HTML output)"
-msgstr ""
+msgstr "Genera report in modalità debug (output HTML)"
 
 #: common/models.py:828
 msgid "Page Size"
-msgstr ""
+msgstr "Dimensioni pagina"
 
 #: common/models.py:829
 msgid "Default page size for PDF reports"
-msgstr ""
+msgstr "Dimensione predefinita della pagina per i report PDF"
 
 #: common/models.py:839
 msgid "Test Reports"
-msgstr ""
+msgstr "Stampa di prova"
 
 #: common/models.py:840
 msgid "Enable generation of test reports"
-msgstr ""
+msgstr "Abilita generazione di stampe di prova"
 
 #: common/models.py:846
 msgid "Stock Expiry"
-msgstr ""
+msgstr "Scadenza giacenza"
 
 #: common/models.py:847
 msgid "Enable stock expiry functionality"
-msgstr ""
+msgstr "Abilita funzionalità di scadenza della giacenza"
 
 #: common/models.py:853
 msgid "Sell Expired Stock"
-msgstr ""
+msgstr "Vendi giacenza scaduta"
 
 #: common/models.py:854
 msgid "Allow sale of expired stock"
-msgstr ""
+msgstr "Consenti la vendita di stock scaduti"
 
 #: common/models.py:860
 msgid "Stock Stale Time"
@@ -1794,11 +1820,11 @@ msgstr ""
 
 #: common/models.py:861
 msgid "Number of days stock items are considered stale before expiring"
-msgstr ""
+msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza"
 
 #: common/models.py:863
 msgid "days"
-msgstr ""
+msgstr "giorni"
 
 #: common/models.py:868
 msgid "Build Expired Stock"
@@ -1810,19 +1836,19 @@ msgstr ""
 
 #: common/models.py:875
 msgid "Stock Ownership Control"
-msgstr ""
+msgstr "Controllo della proprietà della giacenza"
 
 #: common/models.py:876
 msgid "Enable ownership control over stock locations and items"
-msgstr ""
+msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza"
 
 #: common/models.py:882
 msgid "Group by Part"
-msgstr ""
+msgstr "Raggruppa per articolo"
 
 #: common/models.py:883
 msgid "Group stock items by part reference in table views"
-msgstr ""
+msgstr "Raggruppa le voci di giacenza per riferimento articolo nelle viste della tabella"
 
 #: common/models.py:889
 msgid "Build Order Reference Prefix"
@@ -1850,7 +1876,7 @@ msgstr ""
 
 #: common/models.py:906
 msgid "Purchase Order Reference Prefix"
-msgstr ""
+msgstr "Referenza ordine d'acquisto"
 
 #: common/models.py:907
 msgid "Prefix value for purchase order reference"
@@ -1858,43 +1884,43 @@ msgstr ""
 
 #: common/models.py:913
 msgid "Enable password forgot"
-msgstr ""
+msgstr "Abilita password dimenticata"
 
 #: common/models.py:914
 msgid "Enable password forgot function on the login pages"
-msgstr ""
+msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
 
 #: common/models.py:919
 msgid "Enable registration"
-msgstr ""
+msgstr "Abilita registrazione"
 
 #: common/models.py:920
 msgid "Enable self-registration for users on the login pages"
-msgstr ""
+msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
 
 #: common/models.py:925
 msgid "Enable SSO"
-msgstr ""
+msgstr "SSO abilitato"
 
 #: common/models.py:926
 msgid "Enable SSO on the login pages"
-msgstr ""
+msgstr "Abilita SSO nelle pagine di accesso"
 
 #: common/models.py:931
 msgid "Email required"
-msgstr ""
+msgstr "Email richiesta"
 
 #: common/models.py:932
 msgid "Require user to supply mail on signup"
-msgstr ""
+msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
 
 #: common/models.py:937
 msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "Riempimento automatico degli utenti SSO"
 
 #: common/models.py:938
 msgid "Automatically fill out user-details from SSO account-data"
-msgstr ""
+msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
 
 #: common/models.py:943
 msgid "Mail twice"
@@ -1930,15 +1956,15 @@ msgstr ""
 
 #: common/models.py:1007
 msgid "Show subscribed categories"
-msgstr ""
+msgstr "Mostra le categorie sottoscritte"
 
 #: common/models.py:1008
 msgid "Show subscribed part categories on the homepage"
-msgstr ""
+msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
 
 #: common/models.py:1013
 msgid "Show latest parts"
-msgstr ""
+msgstr "Mostra ultimi articoli"
 
 #: common/models.py:1014
 msgid "Show latest parts on the homepage"
@@ -2066,23 +2092,23 @@ msgstr ""
 
 #: common/models.py:1111
 msgid "Inline label display"
-msgstr ""
+msgstr "Visualizzazione dell'etichetta in linea"
 
 #: common/models.py:1112
 msgid "Display PDF labels in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
 
 #: common/models.py:1118
 msgid "Inline report display"
-msgstr ""
+msgstr "Visualizzazione dell'etichetta in linea"
 
 #: common/models.py:1119
 msgid "Display PDF reports in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
 
 #: common/models.py:1125
 msgid "Search Preview Results"
-msgstr ""
+msgstr "Risultati Dell'Anteprima Di Ricerca"
 
 #: common/models.py:1126
 msgid "Number of results to show in search preview window"
@@ -2134,147 +2160,149 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
-msgstr ""
+msgstr "Prezzo"
 
 #: common/models.py:1234
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
-msgstr ""
+msgstr "Carica file"
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
-msgstr ""
+msgstr "Abbina Campi"
 
 #: common/views.py:95
 msgid "Match Items"
-msgstr ""
+msgstr "Elementi corrispondenti"
 
 #: common/views.py:440
 msgid "Fields matching failed"
-msgstr ""
+msgstr "Corrispondenza campi non riuscita"
 
 #: common/views.py:495
 msgid "Parts imported"
-msgstr ""
+msgstr "Articoli importati"
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
-msgstr ""
+msgstr "Passaggio Precedente"
 
 #: company/forms.py:24 part/forms.py:46
 msgid "URL"
-msgstr ""
+msgstr "URL"
 
 #: company/forms.py:25 part/forms.py:47
 msgid "Image URL"
-msgstr ""
+msgstr "URL Immagine"
 
 #: company/models.py:105
 msgid "Company description"
-msgstr ""
+msgstr "Descrizione azienda"
 
 #: company/models.py:106
 msgid "Description of the company"
-msgstr ""
+msgstr "Descrizione dell'azienda"
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
-msgstr ""
+msgstr "Sito Web"
 
 #: company/models.py:113
 msgid "Company website URL"
-msgstr ""
+msgstr "Sito web aziendale"
 
 #: company/models.py:117 company/templates/company/company_base.html:88
 msgid "Address"
-msgstr ""
+msgstr "Indirizzo"
 
 #: company/models.py:118
 msgid "Company address"
-msgstr ""
+msgstr "Indirizzo dell'azienda"
 
 #: company/models.py:121
 msgid "Phone number"
-msgstr ""
+msgstr "Telefono"
 
 #: company/models.py:122
 msgid "Contact phone number"
-msgstr ""
+msgstr "Numero di telefono di contatto"
 
 #: company/models.py:125 company/templates/company/company_base.html:102
 #: templates/InvenTree/settings/user.html:46
 msgid "Email"
-msgstr ""
+msgstr "Email"
 
 #: company/models.py:125
 msgid "Contact email address"
-msgstr ""
+msgstr "Indirizzo email"
 
 #: company/models.py:128 company/templates/company/company_base.html:109
 msgid "Contact"
-msgstr ""
+msgstr "Contatto"
 
 #: company/models.py:129
 msgid "Point of contact"
-msgstr ""
+msgstr "Punto di contatto"
 
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
-msgstr ""
+msgstr "Link"
 
 #: company/models.py:131
 msgid "Link to external company information"
-msgstr ""
+msgstr "Collegamento alle informazioni aziendali esterne"
 
 #: company/models.py:139 part/models.py:807
 msgid "Image"
-msgstr ""
+msgstr "Immagine"
 
 #: company/models.py:144
 msgid "is customer"
-msgstr ""
+msgstr "è un cliente"
 
 #: company/models.py:144
 msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "Vendi oggetti a questa azienda?"
 
 #: company/models.py:146
 msgid "is supplier"
-msgstr ""
+msgstr "è un fornitore"
 
 #: company/models.py:146
 msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "Acquistate articoli da questa azienda?"
 
 #: company/models.py:148
 msgid "is manufacturer"
-msgstr ""
+msgstr "è un produttore"
 
 #: company/models.py:148
 msgid "Does this company manufacture parts?"
@@ -2283,7 +2311,7 @@ msgstr ""
 #: company/models.py:152 company/serializers.py:270
 #: company/templates/company/company_base.html:76 stock/serializers.py:172
 msgid "Currency"
-msgstr ""
+msgstr "Valuta"
 
 #: company/models.py:155
 msgid "Default currency used for this company"
@@ -2292,249 +2320,252 @@ msgstr ""
 #: company/models.py:320 company/models.py:535 stock/models.py:484
 #: stock/templates/stock/item_base.html:224
 msgid "Base Part"
-msgstr ""
+msgstr "Articolo di base"
 
 #: company/models.py:324 company/models.py:539 order/views.py:912
 msgid "Select part"
-msgstr ""
+msgstr "Seleziona articolo"
 
 #: company/models.py:335 company/templates/company/company_base.html:116
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
-msgstr ""
+msgstr "Produttore"
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
-msgstr ""
+msgstr "Seleziona Produttore"
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
-msgstr ""
+msgstr "Codice articolo produttore (MPN)"
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
-msgstr ""
+msgstr "Codice articolo produttore"
 
 #: company/models.py:349
 msgid "URL for external manufacturer part link"
-msgstr ""
+msgstr "URL dell'articolo del fornitore"
 
 #: company/models.py:355
 msgid "Manufacturer part description"
-msgstr ""
+msgstr "Descrizione articolo costruttore"
 
 #: company/models.py:409 company/models.py:558
 #: company/templates/company/manufacturer_part.html:6
 #: company/templates/company/manufacturer_part.html:23
 #: stock/templates/stock/item_base.html:363
 msgid "Manufacturer Part"
-msgstr ""
+msgstr "Codice articolo produttore"
 
 #: company/models.py:416
 msgid "Parameter name"
-msgstr ""
+msgstr "Nome parametro"
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
-msgstr ""
+msgstr "Valore"
 
 #: company/models.py:423
 msgid "Parameter value"
-msgstr ""
+msgstr "Valore del parametro"
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
-msgstr ""
+msgstr "Unità"
 
 #: company/models.py:430
 msgid "Parameter units"
-msgstr ""
+msgstr "Unità parametri"
 
 #: company/models.py:502
 msgid "Linked manufacturer part must reference the same base part"
-msgstr ""
+msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
 
 #: company/models.py:545 company/templates/company/company_base.html:121
 #: company/templates/company/supplier_part.html:94 order/models.py:263
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
-msgstr ""
+msgstr "Fornitore"
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
-msgstr ""
+msgstr "Seleziona fornitore"
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
-msgstr ""
+msgstr "SKU"
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
 #: company/models.py:559
 msgid "Select manufacturer part"
-msgstr ""
+msgstr "Selezionare un produttore"
 
 #: company/models.py:565
 msgid "URL for external supplier part link"
-msgstr ""
+msgstr "URL dell'articolo del fornitore"
 
 #: company/models.py:571
 msgid "Supplier part description"
-msgstr ""
+msgstr "Descrizione articolo fornitore"
 
 #: company/models.py:576 company/templates/company/supplier_part.html:126
 #: part/models.py:2588 report/templates/report/inventree_po_report.html:93
 #: report/templates/report/inventree_so_report.html:93
 msgid "Note"
-msgstr ""
+msgstr "Nota"
 
 #: company/models.py:580 part/models.py:1748
 msgid "base cost"
-msgstr ""
+msgstr "costo base"
 
 #: company/models.py:580 part/models.py:1748
 msgid "Minimum charge (e.g. stocking fee)"
-msgstr ""
+msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
-msgstr ""
+msgstr "Confezionamento"
 
 #: company/models.py:582
 msgid "Part packaging"
-msgstr ""
+msgstr "Imballaggio del pezzo"
 
 #: company/models.py:584 part/models.py:1750
 msgid "multiple"
-msgstr ""
+msgstr "multiplo"
 
 #: company/models.py:584
 msgid "Order multiple"
-msgstr ""
+msgstr "Ordine multiplo"
 
 #: company/serializers.py:70
 msgid "Default currency used for this supplier"
-msgstr ""
+msgstr "Valuta predefinita utilizzata per questo fornitore"
 
 #: company/serializers.py:71
 msgid "Currency Code"
-msgstr ""
+msgstr "Codice valuta"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
-msgstr ""
+msgstr "Azienda"
 
 #: company/templates/company/company_base.html:22
 #: templates/js/translated/order.js:121
 msgid "Create Purchase Order"
-msgstr ""
+msgstr "Crea ordine d'acquisto"
 
 #: company/templates/company/company_base.html:27
 msgid "Edit company information"
-msgstr ""
+msgstr "Modifica le informazioni dell'azienda"
 
 #: company/templates/company/company_base.html:32
 #: company/templates/company/company_base.html:148
 msgid "Delete Company"
-msgstr ""
+msgstr "Elimina Azienda"
 
 #: company/templates/company/company_base.html:48
 #: part/templates/part/part_thumb.html:12
 msgid "Upload new image"
-msgstr ""
+msgstr "Carica nuova immagine"
 
 #: company/templates/company/company_base.html:51
 #: part/templates/part/part_thumb.html:14
 msgid "Download image from URL"
-msgstr ""
+msgstr "Scarica immagine dall'URL"
 
 #: company/templates/company/company_base.html:81
 msgid "Uses default currency"
-msgstr ""
+msgstr "Valuta predefinita"
 
 #: company/templates/company/company_base.html:95
 msgid "Phone"
-msgstr ""
+msgstr "Telefono"
 
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
-msgstr ""
+msgstr "Cliente"
 
 #: company/templates/company/company_base.html:194
 #: part/templates/part/part_base.html:342
 msgid "Upload Image"
-msgstr ""
+msgstr "Carica immagine"
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
-msgstr ""
+msgstr "Articoli fornitore"
 
 #: company/templates/company/detail.html:19
 #: order/templates/order/order_wizard/select_parts.html:44
 msgid "Create new supplier part"
-msgstr ""
+msgstr "Crea nuovo fornitore"
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
-msgstr ""
+msgstr "Nuovo fornitore articolo"
 
 #: company/templates/company/detail.html:32
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
-msgstr ""
+msgstr "Opzioni"
 
 #: company/templates/company/detail.html:37
 #: company/templates/company/detail.html:84
 #: part/templates/part/category.html:166
 msgid "Order parts"
-msgstr ""
+msgstr "Articoli ordinati"
 
 #: company/templates/company/detail.html:42
 #: company/templates/company/detail.html:89
 msgid "Delete parts"
-msgstr ""
+msgstr "Cancella articoli"
 
 #: company/templates/company/detail.html:43
 #: company/templates/company/detail.html:90
 msgid "Delete Parts"
-msgstr ""
+msgstr "Cancella articoli"
 
 #: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
 msgid "Manufacturer Parts"
@@ -2544,23 +2575,26 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
 #: company/templates/company/detail.html:107
 msgid "Supplier Stock"
-msgstr ""
+msgstr "Giacenza Fornitore"
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
-msgstr ""
+msgstr "Ordine di acquisto"
 
 #: company/templates/company/detail.html:121
 #: order/templates/order/purchase_orders.html:17
@@ -2573,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2603,281 +2639,312 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
-msgstr ""
+msgstr "Elimina articoli fornitore?"
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
-msgstr ""
+msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
 
 #: company/templates/company/index.html:8
 msgid "Supplier List"
-msgstr ""
+msgstr "Elenco dei fornitori"
 
 #: company/templates/company/manufacturer_part.html:14 company/views.py:55
 #: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
 #: templates/navbar.html:44
 msgid "Manufacturers"
-msgstr ""
+msgstr "Produttori"
 
 #: company/templates/company/manufacturer_part.html:35
 #: company/templates/company/supplier_part.html:34
 #: company/templates/company/supplier_part.html:159
 #: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
 msgid "Order part"
-msgstr ""
+msgstr "Articoli ordinati"
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:70
 #: company/templates/company/supplier_part.html:71
 msgid "Internal Part"
-msgstr ""
+msgstr "Articolo interno"
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
-msgstr ""
+msgstr "Fornitori"
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
-msgstr ""
+msgstr "Elimina articolo fornitore"
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
-msgstr ""
+msgstr "Elimina"
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
-msgstr ""
+msgstr "Parametri"
 
 #: company/templates/company/manufacturer_part.html:141
 #: part/templates/part/detail.html:282
 #: templates/InvenTree/settings/category.html:12
 #: templates/InvenTree/settings/part.html:65
 msgid "New Parameter"
-msgstr ""
+msgstr "Nuovo Parametro"
 
 #: company/templates/company/manufacturer_part.html:152
 msgid "Delete parameters"
-msgstr ""
+msgstr "Elimina il parametro"
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
-msgstr ""
+msgstr "Aggiungi parametro"
 
 #: company/templates/company/manufacturer_part.html:233
 msgid "Selected parameters will be deleted"
-msgstr ""
+msgstr "Gli eventi selezionati verranno eliminati"
 
 #: company/templates/company/manufacturer_part.html:245
 msgid "Delete Parameters"
+msgstr "Elimina Parametri"
+
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
-msgstr ""
+msgstr "Articolo Fornitore"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
-msgstr ""
+msgstr "Modifica articolo fornitore"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
-msgstr ""
+msgstr "Elimina articolo fornitore"
 
 #: company/templates/company/supplier_part.html:138
 #: company/templates/company/supplier_part_navbar.html:12
 msgid "Supplier Part Stock"
-msgstr ""
+msgstr "Fornitore articolo in giacenza"
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Create new stock item"
-msgstr "Elemento stock modificato"
+msgstr "Crea nuova allocazione magazzino"
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
 #: templates/js/translated/stock.js:324
 msgid "New Stock Item"
-msgstr ""
+msgstr "Nuovo Elemento in giacenza"
 
 #: company/templates/company/supplier_part.html:155
 #: company/templates/company/supplier_part_navbar.html:19
 msgid "Supplier Part Orders"
-msgstr ""
+msgstr "Ordini articoli fornitore"
 
 #: company/templates/company/supplier_part.html:160
 #: part/templates/part/detail.html:175
 msgid "Order Part"
-msgstr ""
+msgstr "Ordine Articolo"
 
 #: company/templates/company/supplier_part.html:179
 #: part/templates/part/prices.html:7
 msgid "Pricing Information"
-msgstr ""
+msgstr "Informazioni Prezzi"
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
-msgstr ""
+msgstr "Aggiungi riduzione prezzo"
 
 #: company/templates/company/supplier_part.html:210
 msgid "No price break information found"
-msgstr ""
+msgstr "Nessuna informazione di riduzione di prezzo trovata"
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
-msgstr ""
+msgstr "Elimina riduzione di prezzo"
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:263
 msgid "Edit price break"
-msgstr ""
+msgstr "Modifica riduzione di prezzo"
 
 #: company/templates/company/supplier_part.html:264
 msgid "Delete price break"
-msgstr ""
+msgstr "Cancella riduzione di prezzo"
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
-msgstr ""
+msgstr "Magazzino"
 
 #: company/templates/company/supplier_part_navbar.html:22
 msgid "Orders"
-msgstr ""
+msgstr "Ordini"
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
-msgstr ""
+msgstr "Prezzo articolo del fornitore"
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
-msgstr ""
+msgstr "Prezzi"
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Articoli in magazzino"
 
 #: company/views.py:50
 msgid "New Supplier"
-msgstr ""
+msgstr "Nuovo Fornitore"
 
 #: company/views.py:56
 msgid "New Manufacturer"
-msgstr ""
+msgstr "Nuovo Produttore"
 
 #: company/views.py:61 templates/InvenTree/search.html:214
 #: templates/navbar.html:55
 msgid "Customers"
-msgstr ""
+msgstr "Clienti"
 
 #: company/views.py:62
 msgid "New Customer"
-msgstr ""
+msgstr "Nuovo cliente"
 
 #: company/views.py:69
 msgid "Companies"
-msgstr ""
+msgstr "Aziende"
 
 #: company/views.py:70
 msgid "New Company"
-msgstr ""
+msgstr "Nuova Azienda"
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
-msgstr ""
+msgstr "Download Immagine"
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
-msgstr ""
+msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download"
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
-msgstr ""
+msgstr "Risposta non valida: {code}"
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
-msgstr ""
+msgstr "L'URL fornito non è un file immagine valido"
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
-msgstr ""
+msgstr "Nessun oggetto valido fornito nel modello"
 
 #: label/models.py:113
 msgid "Label name"
-msgstr ""
+msgstr "Nome etichetta"
 
 #: label/models.py:120
 msgid "Label description"
-msgstr ""
+msgstr "Descrizione etichetta"
 
 #: label/models.py:127
 msgid "Label"
-msgstr ""
+msgstr "Etichetta"
 
 #: label/models.py:128
 msgid "Label template file"
-msgstr ""
+msgstr "File modello etichetta"
 
 #: label/models.py:134 report/models.py:298
 msgid "Enabled"
-msgstr ""
+msgstr "Abilitato"
 
 #: label/models.py:135
 msgid "Label template is enabled"
-msgstr ""
+msgstr "Modello di etichetta abilitato"
 
 #: label/models.py:140
 msgid "Width [mm]"
-msgstr ""
+msgstr "Larghezza [mm]"
 
 #: label/models.py:141
 msgid "Label width, specified in mm"
-msgstr ""
+msgstr "Larghezza dell'etichetta, specificata in mm"
 
 #: label/models.py:147
 msgid "Height [mm]"
-msgstr ""
+msgstr "Altezza [mm]"
 
 #: label/models.py:148
 msgid "Label height, specified in mm"
-msgstr ""
+msgstr "Larghezza dell'etichetta, specificata in mm"
 
 #: label/models.py:154 report/models.py:291
 msgid "Filename Pattern"
@@ -2892,9 +2959,9 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
-msgstr ""
+msgstr "Filtri"
 
 #: label/models.py:318
 msgid "Query filters (comma-separated list of key=value pairs"
@@ -2906,32 +2973,32 @@ msgstr ""
 
 #: order/forms.py:26 order/templates/order/order_base.html:52
 msgid "Place order"
-msgstr ""
+msgstr "Invia l'ordine"
 
 #: order/forms.py:37 order/templates/order/order_base.html:59
 msgid "Mark order as complete"
-msgstr ""
+msgstr "Contrassegna ordine come completato"
 
 #: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
 #: order/templates/order/sales_order_base.html:60
 msgid "Cancel order"
-msgstr ""
+msgstr "Annulla l'ordine"
 
 #: order/forms.py:70
 msgid "Ship order"
-msgstr ""
+msgstr "Spedizione ordine"
 
 #: order/forms.py:98
 msgid "Enter stock item serial numbers"
-msgstr ""
+msgstr "Inserisci i numeri di serie dell'articolo in giacenza"
 
 #: order/forms.py:104
 msgid "Enter quantity of stock items"
-msgstr ""
+msgstr "Inserisci la quantità di articoli disponibili"
 
 #: order/models.py:161
 msgid "Order description"
-msgstr ""
+msgstr "Descrizione ordine"
 
 #: order/models.py:163
 msgid "Link to external page"
@@ -2939,60 +3006,60 @@ msgstr ""
 
 #: order/models.py:171
 msgid "Created By"
-msgstr ""
+msgstr "Creato Da"
 
 #: order/models.py:178
 msgid "User or group responsible for this order"
-msgstr ""
+msgstr "Utente o gruppo responsabile di questo ordine"
 
 #: order/models.py:183
 msgid "Order notes"
-msgstr ""
+msgstr "Note ordine"
 
 #: order/models.py:250 order/models.py:557
 msgid "Order reference"
-msgstr ""
+msgstr "Riferimento ordine"
 
 #: order/models.py:255 order/models.py:572
 msgid "Purchase order status"
-msgstr ""
+msgstr "Stato ordine d'acquisto"
 
 #: order/models.py:264
 msgid "Company from which the items are being ordered"
-msgstr ""
+msgstr "Azienda da cui sono stati ordinati gli articoli"
 
 #: order/models.py:267 order/templates/order/order_base.html:114
 #: templates/js/translated/order.js:669
 msgid "Supplier Reference"
-msgstr ""
+msgstr "Riferimento fornitore"
 
 #: order/models.py:267
 msgid "Supplier order reference code"
-msgstr ""
+msgstr "Codice di riferimento ordine fornitore"
 
 #: order/models.py:274
 msgid "received by"
-msgstr ""
+msgstr "ricevuto da"
 
 #: order/models.py:279
 msgid "Issue Date"
-msgstr ""
+msgstr "Data di emissione"
 
 #: order/models.py:280
 msgid "Date order was issued"
-msgstr ""
+msgstr "Data di emissione ordine"
 
 #: order/models.py:285
 msgid "Target Delivery Date"
-msgstr ""
+msgstr "Data di consegna programmata"
 
 #: order/models.py:286
 msgid "Expected date for order delivery. Order will be overdue after this date."
-msgstr ""
+msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data."
 
 #: order/models.py:292
 msgid "Date order was completed"
-msgstr ""
+msgstr "Data ordine completato"
 
 #: order/models.py:321
 msgid "Part supplier must match PO supplier"
@@ -3062,7 +3129,7 @@ msgstr ""
 
 #: order/models.py:790
 msgid "Supplier part"
-msgstr ""
+msgstr "Articolo Fornitore"
 
 #: order/models.py:797 order/templates/order/order_base.html:147
 #: order/templates/order/sales_order_base.html:154
@@ -3111,7 +3178,7 @@ msgstr ""
 
 #: order/models.py:957
 msgid "Allocation quantity cannot exceed stock quantity"
-msgstr ""
+msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
 
 #: order/models.py:961
 msgid "StockItem is over-allocated"
@@ -3135,7 +3202,7 @@ msgstr ""
 
 #: order/models.py:991
 msgid "Enter stock allocation quantity"
-msgstr ""
+msgstr "Inserisci la quantità assegnata alla giacenza"
 
 #: order/serializers.py:167
 msgid "Purchase price currency"
@@ -3151,7 +3218,7 @@ msgstr ""
 
 #: order/serializers.py:218 order/serializers.py:286
 msgid "Select destination location for received items"
-msgstr ""
+msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
 
 #: order/serializers.py:242
 msgid "Barcode Hash"
@@ -3171,7 +3238,7 @@ msgstr ""
 
 #: order/serializers.py:315
 msgid "Destination location must be specified"
-msgstr ""
+msgstr "La destinazione deve essere specificata"
 
 #: order/serializers.py:326
 msgid "Supplied barcode values must be unique"
@@ -3187,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Received against purchase order"
 msgid "Print purchase order report"
-msgstr "Ricevuto contro l'ordine di acquisto"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3199,10 +3264,8 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Production"
 msgid "Order actions"
-msgstr "Produzione"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
@@ -3211,26 +3274,26 @@ msgstr ""
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
-msgstr ""
+msgstr "Ricevere articoli"
 
 #: order/templates/order/order_base.html:93
 #: order/templates/order/sales_order_base.html:98
 msgid "Order Reference"
-msgstr ""
+msgstr "Riferimento ordine"
 
 #: order/templates/order/order_base.html:98
 #: order/templates/order/sales_order_base.html:103
 msgid "Order Status"
-msgstr ""
+msgstr "Stato dell'ordine"
 
 #: order/templates/order/order_base.html:133
 #: report/templates/report/inventree_build_order_base.html:122
 msgid "Issued"
-msgstr ""
+msgstr "Emesso"
 
 #: order/templates/order/order_base.html:203
 msgid "Edit Purchase Order"
-msgstr ""
+msgstr "Modifica ordine d'acquisto"
 
 #: order/templates/order/order_cancel.html:8
 msgid "Cancelling this order means that the order and line items will no longer be editable."
@@ -3287,14 +3350,14 @@ msgstr ""
 #: part/templates/part/import_wizard/ajax_match_fields.html:35
 #: part/templates/part/import_wizard/match_fields.html:42
 msgid "Remove column"
-msgstr ""
+msgstr "Elimina colonna"
 
 #: order/templates/order/order_wizard/match_fields.html:60
 #: part/templates/part/bom_upload/match_fields.html:60
 #: part/templates/part/import_wizard/ajax_match_fields.html:53
 #: part/templates/part/import_wizard/match_fields.html:60
 msgid "Duplicate selection"
-msgstr ""
+msgstr "Duplica selezionati"
 
 #: order/templates/order/order_wizard/match_fields.html:71
 #: order/templates/order/order_wizard/match_parts.html:52
@@ -3307,57 +3370,57 @@ msgstr ""
 #: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
 #: templates/js/translated/order.js:377
 msgid "Remove row"
-msgstr ""
+msgstr "Elimina riga"
 
 #: order/templates/order/order_wizard/match_parts.html:12
 #: part/templates/part/bom_upload/match_parts.html:12
 #: part/templates/part/import_wizard/ajax_match_references.html:12
 #: part/templates/part/import_wizard/match_references.html:12
 msgid "Errors exist in the submitted data"
-msgstr ""
+msgstr "Errori esistenti nei dati inviati"
 
 #: order/templates/order/order_wizard/match_parts.html:28
 #: part/templates/part/bom_upload/match_parts.html:28
 #: part/templates/part/import_wizard/ajax_match_references.html:21
 #: part/templates/part/import_wizard/match_references.html:28
 msgid "Row"
-msgstr ""
+msgstr "Riga"
 
 #: order/templates/order/order_wizard/match_parts.html:29
 msgid "Select Supplier Part"
-msgstr ""
+msgstr "Seleziona l'articolo del fornitore"
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
 #: order/templates/order/order_wizard/select_parts.html:11
 msgid "Step 1 of 2 - Select Part Suppliers"
-msgstr ""
+msgstr "Fase 1 di 2 - Selezionare fornitori dell'articolo"
 
 #: order/templates/order/order_wizard/select_parts.html:16
 msgid "Select suppliers"
-msgstr ""
+msgstr "Seleziona fornitori"
 
 #: order/templates/order/order_wizard/select_parts.html:20
 msgid "No purchaseable parts selected"
-msgstr ""
+msgstr "Nessun articolo acquistabile selezionato"
 
 #: order/templates/order/order_wizard/select_parts.html:33
 msgid "Select Supplier"
-msgstr ""
+msgstr "Seleziona fornitore"
 
 #: order/templates/order/order_wizard/select_parts.html:57
 msgid "No price"
@@ -3371,7 +3434,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:77
 #: part/templates/part/set_category.html:32
 msgid "Remove part"
-msgstr ""
+msgstr "Rimuovi parte"
 
 #: order/templates/order/order_wizard/select_pos.html:8
 msgid "Step 2 of 2 - Select Purchase Orders"
@@ -3400,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3419,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3480,7 +3575,7 @@ msgstr ""
 
 #: order/templates/order/sales_order_ship.html:12
 msgid "Ensure that the order allocation is correct before shipping the order."
-msgstr ""
+msgstr "Assicurarsi che l'assegnazione degli ordini sia corretta prima di spedire l'ordine."
 
 #: order/templates/order/sales_order_ship.html:18
 msgid "Some line items in this order have been over-allocated"
@@ -3615,7 +3710,7 @@ msgstr ""
 
 #: part/api.py:750
 msgid "Specify location for initial part stock"
-msgstr ""
+msgstr "Specifica la posizione per lo stock iniziale"
 
 #: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
 msgid "This field is required"
@@ -3624,11 +3719,11 @@ msgstr ""
 #: part/bom.py:125 part/models.py:81 part/models.py:816
 #: part/templates/part/category.html:90 part/templates/part/detail.html:104
 msgid "Default Location"
-msgstr ""
+msgstr "Posizione Predefinita"
 
 #: part/bom.py:126 part/templates/part/part_base.html:167
 msgid "Available Stock"
-msgstr ""
+msgstr "Disponibilità in magazzino"
 
 #: part/forms.py:63
 msgid "File Format"
@@ -3704,67 +3799,65 @@ msgstr ""
 
 #: part/forms.py:127
 msgid "validate"
-msgstr ""
+msgstr "convalida"
 
 #: part/forms.py:127
 msgid "Confirm that the BOM is correct"
-msgstr ""
+msgstr "Conferma che la Distinta Base (BOM) è corretta"
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
-msgstr ""
+msgstr "Seleziona categoria articolo"
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
-msgstr ""
+msgstr "Digita la quantità per il calcolo del prezzo"
 
 #: part/models.py:82
 msgid "Default location for parts in this category"
-msgstr ""
+msgstr "Posizione predefinita per gli articoli di questa categoria"
 
 #: part/models.py:85
 msgid "Default keywords"
-msgstr ""
+msgstr "Keywords predefinite"
 
 #: part/models.py:85
 msgid "Default keywords for parts in this category"
-msgstr ""
+msgstr "Parole chiave predefinite per gli articoli in questa categoria"
 
 #: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
 #: part/templates/part/part_app_base.html:10
 msgid "Part Category"
-msgstr ""
+msgstr "Categoria Articoli"
 
 #: part/models.py:96 part/templates/part/category.html:117
 #: templates/InvenTree/search.html:101 templates/stats.html:84
 #: users/models.py:40
 msgid "Part Categories"
-msgstr ""
+msgstr "Categorie Articolo"
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
-msgstr ""
+msgstr "Articoli"
 
 #: part/models.py:450
 msgid "Invalid choice for parent part"
-msgstr ""
+msgstr "Scelta non valida per l'articolo principale"
 
 #: part/models.py:502 part/models.py:514
 #, python-brace-format
@@ -3773,113 +3866,114 @@ msgstr ""
 
 #: part/models.py:611
 msgid "Next available serial numbers are"
-msgstr ""
+msgstr "I successivi numeri di serie disponibili sono"
 
 #: part/models.py:615
 msgid "Next available serial number is"
-msgstr ""
+msgstr "Il prossimo numero di serie disponibile è"
 
 #: part/models.py:620
 msgid "Most recent serial number is"
-msgstr ""
+msgstr "Il numero di serie più recente è"
 
 #: part/models.py:715
 msgid "Duplicate IPN not allowed in part settings"
-msgstr ""
+msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
 
 #: part/models.py:740
 msgid "Part name"
-msgstr ""
+msgstr "Nome articolo"
 
 #: part/models.py:747
 msgid "Is Template"
-msgstr ""
+msgstr "È Template"
 
 #: part/models.py:748
 msgid "Is this part a template part?"
-msgstr ""
+msgstr "Quest'articolo è un articolo di template?"
 
 #: part/models.py:758
 msgid "Is this part a variant of another part?"
-msgstr ""
+msgstr "Questa parte è una variante di un altro articolo?"
 
 #: part/models.py:759
 msgid "Variant Of"
-msgstr ""
+msgstr "Variante Di"
 
 #: part/models.py:765
 msgid "Part description"
-msgstr ""
+msgstr "Descrizione articolo"
 
 #: part/models.py:770 part/templates/part/category.html:97
 #: part/templates/part/detail.html:73
 msgid "Keywords"
-msgstr ""
+msgstr "Parole Chiave"
 
 #: part/models.py:771
 msgid "Part keywords to improve visibility in search results"
-msgstr ""
+msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
 
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
 #: part/models.py:779
 msgid "Part category"
-msgstr ""
+msgstr "Categoria articolo"
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
-msgstr ""
+msgstr "IPN - Numero di riferimento interno"
 
 #: part/models.py:785
 msgid "Internal Part Number"
-msgstr ""
+msgstr "Numero Dell'articolo Interno"
 
 #: part/models.py:791
 msgid "Part revision or version number"
-msgstr ""
+msgstr "Numero di revisione o di versione"
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
-msgstr ""
+msgstr "Revisione"
 
 #: part/models.py:814
 msgid "Where is this item normally stored?"
-msgstr ""
+msgstr "Dove viene normalmente immagazzinato questo articolo?"
 
 #: part/models.py:861 part/templates/part/detail.html:113
 msgid "Default Supplier"
-msgstr ""
+msgstr "Fornitore predefinito"
 
 #: part/models.py:862
 msgid "Default supplier part"
-msgstr ""
+msgstr "Articolo fornitore predefinito"
 
 #: part/models.py:869
 msgid "Default Expiry"
-msgstr ""
+msgstr "Scadenza Predefinita"
 
 #: part/models.py:870
 msgid "Expiry time (in days) for stock items of this part"
-msgstr ""
+msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo"
 
 #: part/models.py:875 part/templates/part/part_base.html:178
 msgid "Minimum Stock"
-msgstr ""
+msgstr "Scorta Minima"
 
 #: part/models.py:876
 msgid "Minimum allowed stock level"
-msgstr ""
+msgstr "Livello minimo di giacenza consentito"
 
 #: part/models.py:883
 msgid "Stock keeping units for this part"
-msgstr ""
+msgstr "Unità di conservazione delle scorte per quest'articolo"
 
 #: part/models.py:889
 msgid "Can this part be built from other parts?"
@@ -3895,34 +3989,34 @@ msgstr ""
 
 #: part/models.py:906
 msgid "Can this part be purchased from external suppliers?"
-msgstr ""
+msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
 
 #: part/models.py:911
 msgid "Can this part be sold to customers?"
-msgstr ""
+msgstr "Questo pezzo può essere venduto ai clienti?"
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
-msgstr ""
+msgstr "Attivo"
 
 #: part/models.py:916
 msgid "Is this part active?"
-msgstr ""
+msgstr "Quest'articolo è attivo?"
 
 #: part/models.py:921
 msgid "Is this a virtual part, such as a software product or license?"
-msgstr ""
+msgstr "È una parte virtuale, come un prodotto software o una licenza?"
 
 #: part/models.py:926
 msgid "Part notes - supports Markdown formatting"
-msgstr ""
+msgstr "Note dell'articolo - supporta la formattazione Markdown"
 
 #: part/models.py:929
 msgid "BOM checksum"
-msgstr ""
+msgstr "BOM checksum"
 
 #: part/models.py:929
 msgid "Stored BOM checksum"
@@ -3952,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3963,14 +4057,14 @@ msgstr ""
 
 #: part/models.py:2316
 msgid "Test Description"
-msgstr ""
+msgstr "Descrizione Di Prova"
 
 #: part/models.py:2317
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3978,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3986,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4048,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4082,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4093,9 +4187,9 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
-msgstr ""
+msgstr "Consenti Le Varianti"
 
 #: part/models.py:2601
 msgid "Stock items for variant parts can be used for this BOM item"
@@ -4143,7 +4237,7 @@ msgstr ""
 
 #: part/tasks.py:53
 msgid "Low stock notification"
-msgstr ""
+msgstr "Notifica di magazzino bassa"
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4164,13 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
 #: part/templates/part/bom.html:34
 msgid "Delete Items"
-msgstr ""
+msgstr "Elimina Elementi"
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4178,25 +4272,29 @@ msgstr ""
 
 #: part/templates/part/bom_upload/match_parts.html:29
 msgid "Select Part"
+msgstr "Seleziona Articolo"
+
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4211,150 +4309,145 @@ msgstr ""
 
 #: part/templates/part/category.html:24 part/templates/part/category.html:28
 msgid "You are subscribed to notifications for this category"
-msgstr ""
+msgstr "Sei iscritto alle notifiche di questa categoria"
 
 #: part/templates/part/category.html:32
 msgid "Subscribe to notifications for this category"
-msgstr ""
+msgstr "Sottoscrivi notifiche per questa categoria"
 
 #: part/templates/part/category.html:38
 msgid "Category Actions"
-msgstr ""
+msgstr "Azioni Categoria"
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "Selezione una categoria"
+msgstr "Modifica categoria"
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Selezione una categoria"
+msgstr "Modifica Categoria"
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Selezione una categoria"
+msgstr "Elimina la categoria"
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Selezione una categoria"
+msgstr "Cancella categoria"
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
-msgstr ""
+msgstr "Crea nuova categoria articoli"
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Selezione una categoria"
+msgstr "Nuova categoria"
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
-msgstr ""
+msgstr "Categoria articolo di livello superiore"
 
 #: part/templates/part/category.html:79
 msgid "Category Path"
-msgstr ""
+msgstr "Percorso Categoria"
 
 #: part/templates/part/category.html:84
 msgid "Category Description"
-msgstr ""
+msgstr "Descrizione Categoria"
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
-msgstr ""
+msgstr "Sottocategorie"
 
 #: part/templates/part/category.html:108
 msgid "Parts (Including subcategories)"
-msgstr ""
+msgstr "Articoli (incluse le sottocategorie)"
 
 #: part/templates/part/category.html:145
 msgid "Export Part Data"
-msgstr ""
+msgstr "Esporta dati articolo"
 
 #: part/templates/part/category.html:146 part/templates/part/category.html:170
 msgid "Export"
-msgstr ""
+msgstr "Esporta"
 
 #: part/templates/part/category.html:149
 msgid "Create new part"
-msgstr ""
+msgstr "Crea nuovo articolo"
 
 #: part/templates/part/category.html:150 templates/js/translated/bom.js:40
 msgid "New Part"
-msgstr ""
+msgstr "Nuovo articolo"
 
 #: part/templates/part/category.html:164
 msgid "Set category"
-msgstr ""
+msgstr "Imposta categoria"
 
 #: part/templates/part/category.html:164
 msgid "Set Category"
-msgstr ""
+msgstr "Imposta Categoria"
 
 #: part/templates/part/category.html:168
 msgid "Print Labels"
-msgstr ""
+msgstr "Stampa Etichette"
 
 #: part/templates/part/category.html:170
 msgid "Export Data"
-msgstr ""
+msgstr "Esporta Dati"
 
 #: part/templates/part/category.html:184
 msgid "Part Parameters"
-msgstr ""
+msgstr "Parametri articolo"
 
 #: part/templates/part/category.html:261
 msgid "Create Part Category"
-msgstr ""
+msgstr "Crea Categoria Articolo"
 
 #: part/templates/part/category.html:288
 msgid "Create Part"
-msgstr ""
+msgstr "Crea Articolo"
 
 #: part/templates/part/category_delete.html:5
 msgid "Are you sure you want to delete category"
-msgstr ""
+msgstr "Sei sicuro di voler eliminare la categoria"
 
 #: part/templates/part/category_delete.html:8
 #, python-format
 msgid "This category contains %(count)s child categories"
-msgstr ""
+msgstr "Questa categoria contiene %(count)s sottocategorie"
 
 #: part/templates/part/category_delete.html:9
 msgid "If this category is deleted, these child categories will be moved to the"
-msgstr ""
+msgstr "Se questa categoria viene eliminata, queste sottocategorie verranno spostate al"
 
 #: part/templates/part/category_delete.html:11
 msgid "category"
-msgstr ""
+msgstr "categoria"
 
 #: part/templates/part/category_delete.html:13
 msgid "top level Parts category"
-msgstr ""
+msgstr "categoria articolo di livello superiore"
 
 #: part/templates/part/category_delete.html:25
 #, python-format
 msgid "This category contains %(count)s parts"
-msgstr ""
+msgstr "Questa categoria contiene %(count)s sottocategorie"
 
 #: part/templates/part/category_delete.html:27
 #, python-format
 msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
-msgstr ""
+msgstr "Se questa categoria viene eliminata, queste parti verranno spostate nella categoria superiore %(path)s"
 
 #: part/templates/part/category_delete.html:29
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4409,7 +4502,7 @@ msgstr ""
 
 #: part/templates/part/detail.html:208
 msgid "Sales Order Allocations"
-msgstr ""
+msgstr "Assegnazione Ordine Di Vendita"
 
 #: part/templates/part/detail.html:249
 msgid "Part Variants"
@@ -4427,120 +4520,128 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
-msgstr ""
+msgstr "Articoli correlati"
 
 #: part/templates/part/detail.html:319 part/templates/part/detail.html:320
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
-msgstr ""
+msgstr "Distinta base"
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
-msgstr ""
+msgstr "Fornitori articoli"
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
-msgstr ""
+msgstr "Componenti Produttori"
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr "Articoli correlati"
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4560,19 +4661,19 @@ msgstr ""
 #: stock/templates/stock/item_base.html:28
 #: stock/templates/stock/location.html:29
 msgid "Barcode actions"
-msgstr ""
+msgstr "Azioni Barcode"
 
 #: part/templates/part/part_base.html:45
 #: stock/templates/stock/item_base.html:32
 #: stock/templates/stock/location.html:31 templates/qr_button.html:1
 msgid "Show QR Code"
-msgstr ""
+msgstr "Mostra QR Code"
 
 #: part/templates/part/part_base.html:46
 #: stock/templates/stock/item_base.html:48
 #: stock/templates/stock/location.html:32
 msgid "Print Label"
-msgstr ""
+msgstr "Stampa Etichetta"
 
 #: part/templates/part/part_base.html:51
 msgid "Show pricing information"
@@ -4582,7 +4683,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:103
 #: stock/templates/stock/location.html:40
 msgid "Stock actions"
-msgstr ""
+msgstr "Azioni magazzino"
 
 #: part/templates/part/part_base.html:63
 msgid "Count part stock"
@@ -4598,15 +4699,15 @@ msgstr ""
 
 #: part/templates/part/part_base.html:87
 msgid "Duplicate part"
-msgstr ""
+msgstr "Duplica articolo"
 
 #: part/templates/part/part_base.html:90
 msgid "Edit part"
-msgstr ""
+msgstr "Modifica articolo"
 
 #: part/templates/part/part_base.html:93
 msgid "Delete part"
-msgstr ""
+msgstr "Cancella articolo"
 
 #: part/templates/part/part_base.html:109
 msgid "Part is a template part (variants can be made from this part)"
@@ -4626,11 +4727,11 @@ msgstr ""
 
 #: part/templates/part/part_base.html:125
 msgid "Part can be purchased from external suppliers"
-msgstr ""
+msgstr "L'articolo può essere acquistato da fornitori esterni"
 
 #: part/templates/part/part_base.html:129
 msgid "Part can be sold to customers"
-msgstr ""
+msgstr "La parte può essere venduta ai clienti"
 
 #: part/templates/part/part_base.html:135
 #: part/templates/part/part_base.html:143
@@ -4638,12 +4739,12 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
-msgstr ""
+msgstr "Inattivo"
 
 #: part/templates/part/part_base.html:155
 #, python-format
@@ -4651,13 +4752,13 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
-msgstr ""
+msgstr "In magazzino"
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
-msgstr ""
+msgstr "Ordinato"
 
 #: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
 msgid "Required for Build Orders"
@@ -4671,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4708,10 +4809,10 @@ msgstr ""
 #: part/templates/part/prices.html:59 part/templates/part/prices.html:108
 #: part/templates/part/prices.html:125
 msgid "Total Cost"
-msgstr ""
+msgstr "Costo Totale"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4745,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4775,12 +4887,12 @@ msgstr ""
 #: part/templates/part/partial_delete.html:43
 #, python-format
 msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
-msgstr ""
+msgstr "Ci sono %(count)s produttori definiti per questa parte. Se elimini questa parte, verranno eliminate anche le seguenti parti del produttore:"
 
 #: part/templates/part/partial_delete.html:54
 #, python-format
 msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
-msgstr ""
+msgstr "Ci sono %(count)s fornitori definiti per questo articolo. Se elimini questo, verranno eliminate anche i seguenti articoli del fornitore:"
 
 #: part/templates/part/partial_delete.html:65
 #, python-format
@@ -4815,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4837,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4855,17 +4967,17 @@ msgstr ""
 
 #: part/templates/part/set_category.html:9
 msgid "Set category for the following parts"
-msgstr ""
+msgstr "Imposta categoria per i seguenti articoli"
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
-msgstr ""
+msgstr "Nessuna giacenza"
 
 #: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
 msgid "Low Stock"
-msgstr ""
+msgstr "Disponibilità scarsa"
 
 #: part/templates/part/variant_part.html:9
 msgid "Create new part variant"
@@ -4878,138 +4990,125 @@ msgstr ""
 
 #: part/templatetags/inventree_extras.py:113
 msgid "Unknown database"
-msgstr ""
+msgstr "Database sconosciuto"
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
-msgstr ""
+msgstr "Imposta categoria articolo"
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
-msgstr ""
+msgstr "Imposta categoria per {n} articoli"
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
-msgstr ""
+msgstr "Esporta Distinta base"
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
-msgstr ""
+msgstr "Modifica Categoria Articoli"
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
-msgstr ""
+msgstr "Elimina categoria"
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
-msgstr ""
+msgstr "La Categoria articoli è stata eliminata"
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
-msgstr ""
+msgstr "Crea Template Parametro Categoria"
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
-msgstr ""
+msgstr "Modifica Modello Parametro Categoria"
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
-msgstr ""
+msgstr "Elimina Modello Parametro Categoria"
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5046,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5098,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5116,51 +5210,42 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
-msgstr ""
+msgstr "Data"
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
+msgstr "Fallito"
 
 #: stock/api.py:422
 msgid "Quantity is required"
-msgstr ""
+msgstr "La quantità è richiesta"
 
 #: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
 #: stock/templates/stock/item_base.html:382
 #: templates/js/translated/stock.js:1246
 msgid "Expiry Date"
-msgstr ""
+msgstr "Data di Scadenza"
 
 #: stock/forms.py:92 stock/forms.py:266
 msgid "Expiration date for this stock item"
@@ -5196,11 +5281,11 @@ msgstr ""
 
 #: stock/forms.py:236
 msgid "Destination location for uninstalled items"
-msgstr ""
+msgstr "Posizione di destinazione per gli elementi disinstallati"
 
 #: stock/forms.py:240
 msgid "Confirm uninstall"
-msgstr ""
+msgstr "Conferma la disinstallazione"
 
 #: stock/forms.py:240
 msgid "Confirm removal of installed stock items"
@@ -5213,7 +5298,7 @@ msgstr ""
 
 #: stock/models.py:61 stock/models.py:625
 msgid "Select Owner"
-msgstr ""
+msgstr "Seleziona Owner"
 
 #: stock/models.py:352
 msgid "StockItem with this serial number already exists"
@@ -5250,7 +5335,7 @@ msgstr ""
 
 #: stock/models.py:485
 msgid "Base part"
-msgstr ""
+msgstr "Articolo base"
 
 #: stock/models.py:493
 msgid "Select a matching supplier part for this stock item"
@@ -5259,7 +5344,7 @@ msgstr ""
 #: stock/models.py:498 stock/templates/stock/location.html:12
 #: stock/templates/stock/stock_app_base.html:8
 msgid "Stock Location"
-msgstr ""
+msgstr "Ubicazione magazzino"
 
 #: stock/models.py:501
 msgid "Where is this stock item located?"
@@ -5271,7 +5356,7 @@ msgstr ""
 
 #: stock/models.py:513 stock/templates/stock/item_base.html:271
 msgid "Installed In"
-msgstr ""
+msgstr "Installato In"
 
 #: stock/models.py:516
 msgid "Is this item installed in another item?"
@@ -5287,7 +5372,7 @@ msgstr ""
 
 #: stock/models.py:550
 msgid "Stock Quantity"
-msgstr ""
+msgstr "Quantità disponibile"
 
 #: stock/models.py:559
 msgid "Source Build"
@@ -5315,7 +5400,7 @@ msgstr ""
 
 #: stock/models.py:601
 msgid "Delete on deplete"
-msgstr ""
+msgstr "Elimina al esaurimento"
 
 #: stock/models.py:601
 msgid "Delete this Stock Item when stock is depleted"
@@ -5383,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5417,14 +5502,12 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "No serial numbers found"
 msgid "Enter serial numbers for new items"
-msgstr "Nessun numero di serie trovato"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
-msgstr ""
+msgstr "Posizione magazzino di destinazione"
 
 #: stock/serializers.py:326
 msgid "Optional note field"
@@ -5463,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5510,7 +5594,7 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
 msgid "Scan to Location"
-msgstr ""
+msgstr "Scansiona nella posizione"
 
 #: stock/templates/stock/item_base.html:46
 msgid "Printing actions"
@@ -5523,15 +5607,15 @@ msgstr ""
 #: stock/templates/stock/item_base.html:69
 #: stock/templates/stock/location.html:47 templates/stock_table.html:50
 msgid "Count stock"
-msgstr ""
+msgstr "Conta giacenza"
 
 #: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
 msgid "Add stock"
-msgstr ""
+msgstr "Aggiungi giacenza"
 
 #: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
 msgid "Remove stock"
-msgstr ""
+msgstr "Rimuovi giacenza"
 
 #: stock/templates/stock/item_base.html:78
 msgid "Serialize stock"
@@ -5540,7 +5624,7 @@ msgstr ""
 #: stock/templates/stock/item_base.html:82
 #: stock/templates/stock/location.html:53
 msgid "Transfer stock"
-msgstr ""
+msgstr "Trasferisci giacenza"
 
 #: stock/templates/stock/item_base.html:85
 msgid "Assign to customer"
@@ -5584,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5634,16 +5718,16 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:241
 msgid "previous page"
-msgstr ""
+msgstr "pagina precedente"
 
 #: stock/templates/stock/item_base.html:247
 msgid "next page"
-msgstr ""
+msgstr "pagina successiva"
 
 #: stock/templates/stock/item_base.html:290
 #: templates/js/translated/build.js:1035
 msgid "No location set"
-msgstr ""
+msgstr "Nessuna posizione impostata"
 
 #: stock/templates/stock/item_base.html:297
 msgid "Barcode Identifier"
@@ -5670,15 +5754,15 @@ msgstr ""
 #: stock/templates/stock/item_base.html:395
 #: templates/js/translated/stock.js:1259
 msgid "Last Updated"
-msgstr ""
+msgstr "Ultimo aggiornamento"
 
 #: stock/templates/stock/item_base.html:400
 msgid "Last Stocktake"
-msgstr ""
+msgstr "Ultimo Inventario"
 
 #: stock/templates/stock/item_base.html:404
 msgid "No stocktake performed"
-msgstr ""
+msgstr "Nessun inventario eseguito"
 
 #: stock/templates/stock/item_base.html:415
 msgid "Tests"
@@ -5740,70 +5824,75 @@ msgstr ""
 
 #: stock/templates/stock/location.html:33
 msgid "Check-in Items"
-msgstr ""
+msgstr "Articoli controllati"
 
 #: stock/templates/stock/location.html:61
 msgid "Location actions"
-msgstr ""
+msgstr "Azioni posizione"
 
 #: stock/templates/stock/location.html:63
 msgid "Edit location"
-msgstr ""
+msgstr "Modifica la posizione"
 
 #: stock/templates/stock/location.html:65
 msgid "Delete location"
-msgstr ""
+msgstr "Elimina la posizione"
 
 #: stock/templates/stock/location.html:75
 msgid "Create new stock location"
-msgstr ""
+msgstr "Crea nuova posizione di magazzino"
 
 #: stock/templates/stock/location.html:76
 msgid "New Location"
-msgstr ""
+msgstr "Nuova Posizione"
 
 #: stock/templates/stock/location.html:86
 msgid "Top level stock location"
-msgstr ""
+msgstr "Posizione stock di livello superiore"
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
+msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata."
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
-msgstr ""
-
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
+msgstr "Sottoallocazioni"
 
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
-msgstr ""
+msgstr "Posizioni magazzino"
 
 #: stock/templates/stock/location.html:167 templates/stock_table.html:30
 msgid "Printing Actions"
-msgstr ""
+msgstr "Azioni di stampa"
 
 #: stock/templates/stock/location.html:171 templates/stock_table.html:34
 msgid "Print labels"
-msgstr ""
+msgstr "Stampa etichette"
 
 #: stock/templates/stock/location_delete.html:7
 msgid "Are you sure you want to delete this stock location?"
-msgstr ""
+msgstr "Sei sicuro di voler eliminare questa posizione?"
 
 #: stock/templates/stock/stock_app_base.html:16
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -5831,7 +5920,7 @@ msgstr ""
 
 #: stock/views.py:162
 msgid "Edit Stock Location"
-msgstr ""
+msgstr "Modifica Posizione Giacenza"
 
 #: stock/views.py:269 stock/views.py:891 stock/views.py:1017
 #: stock/views.py:1299
@@ -5840,7 +5929,7 @@ msgstr ""
 
 #: stock/views.py:284
 msgid "Stock Location QR code"
-msgstr ""
+msgstr "QR Code della posizione magazzino"
 
 #: stock/views.py:303
 msgid "Assign to Customer"
@@ -5856,7 +5945,7 @@ msgstr ""
 
 #: stock/views.py:345
 msgid "Specify a valid location"
-msgstr ""
+msgstr "Specificare una posizione valida"
 
 #: stock/views.py:356
 msgid "Stock item returned from customer"
@@ -5892,7 +5981,7 @@ msgstr ""
 
 #: stock/views.py:943
 msgid "Create new Stock Location"
-msgstr ""
+msgstr "Crea una nuova Posizione di Giacenza"
 
 #: stock/views.py:1044
 msgid "Create new Stock Item"
@@ -5908,7 +5997,7 @@ msgstr ""
 
 #: stock/views.py:1368
 msgid "Delete Stock Location"
-msgstr ""
+msgstr "Elimina Posizione di Giacenza"
 
 #: stock/views.py:1381
 msgid "Delete Stock Item"
@@ -5952,7 +6041,7 @@ msgstr ""
 
 #: templates/InvenTree/index.html:98
 msgid "Subscribed Categories"
-msgstr ""
+msgstr "Categoria sottoscritta"
 
 #: templates/InvenTree/index.html:108
 msgid "Latest Parts"
@@ -6004,7 +6093,7 @@ msgstr ""
 
 #: templates/InvenTree/search.html:8
 msgid "Search Results"
-msgstr ""
+msgstr "Risultati della Ricerca"
 
 #: templates/InvenTree/search.html:22
 msgid "Enter a search query"
@@ -6020,7 +6109,7 @@ msgstr ""
 
 #: templates/InvenTree/settings/category.html:7
 msgid "Category Settings"
-msgstr ""
+msgstr "Impostazioni categoria"
 
 #: templates/InvenTree/settings/currencies.html:8
 msgid "Currency Settings"
@@ -6028,7 +6117,7 @@ msgstr ""
 
 #: templates/InvenTree/settings/currencies.html:19
 msgid "Base Currency"
-msgstr ""
+msgstr "Vauta di base"
 
 #: templates/InvenTree/settings/currencies.html:24
 msgid "Exchange Rates"
@@ -6040,27 +6129,28 @@ msgstr ""
 
 #: templates/InvenTree/settings/currencies.html:44
 msgid "Never"
-msgstr ""
+msgstr "Mai"
 
 #: templates/InvenTree/settings/currencies.html:49
 msgid "Update Now"
-msgstr ""
+msgstr "Aggiorna Ora"
 
 #: templates/InvenTree/settings/global.html:9
 msgid "Server Settings"
-msgstr ""
+msgstr "Impostazioni Server"
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
-msgstr ""
+msgstr "Impostazioni di accesso"
 
 #: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
 msgid "Signup"
-msgstr ""
+msgstr "Registrati"
 
 #: templates/InvenTree/settings/part.html:7
 msgid "Part Settings"
-msgstr ""
+msgstr "Impostazioni articolo"
 
 #: templates/InvenTree/settings/part.html:43
 msgid "Part Import"
@@ -6074,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6105,7 +6195,7 @@ msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
-msgstr ""
+msgstr "Nessun parametro di categoria trovato"
 
 #: templates/InvenTree/settings/settings.html:170
 #: templates/InvenTree/settings/settings.html:269
@@ -6121,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr "Impostazioni Utente"
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "Impostazioni di ricerca"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6129,32 +6272,28 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
-msgstr ""
+msgstr "Modifica"
 
 #: templates/InvenTree/settings/user.html:20
 #: templates/account/password_reset_from_key.html:4
 #: templates/account/password_reset_from_key.html:7
 msgid "Change Password"
-msgstr ""
+msgstr "Modifica Password"
 
 #: templates/InvenTree/settings/user.html:31
 msgid "Username"
-msgstr ""
+msgstr "Nome utente"
 
 #: templates/InvenTree/settings/user.html:35
 msgid "First Name"
-msgstr ""
+msgstr "Nome"
 
 #: templates/InvenTree/settings/user.html:39
 msgid "Last Name"
-msgstr ""
+msgstr "Cognome"
 
 #: templates/InvenTree/settings/user.html:54
 msgid "The following email addresses are associated with your account:"
@@ -6162,32 +6301,32 @@ msgstr ""
 
 #: templates/InvenTree/settings/user.html:74
 msgid "Verified"
-msgstr ""
+msgstr "Verificato"
 
 #: templates/InvenTree/settings/user.html:76
 msgid "Unverified"
-msgstr ""
+msgstr "Non verificato"
 
 #: templates/InvenTree/settings/user.html:78
 msgid "Primary"
-msgstr ""
+msgstr "Principale"
 
 #: templates/InvenTree/settings/user.html:84
 msgid "Make Primary"
-msgstr ""
+msgstr "Rendi principale"
 
 #: templates/InvenTree/settings/user.html:85
 msgid "Re-send Verification"
-msgstr ""
+msgstr "Re-invia il codice di verifica"
 
 #: templates/InvenTree/settings/user.html:86
 #: templates/InvenTree/settings/user.html:153
 msgid "Remove"
-msgstr ""
+msgstr "Rimuovi"
 
 #: templates/InvenTree/settings/user.html:93
 msgid "Warning:"
-msgstr ""
+msgstr "Attenzione:"
 
 #: templates/InvenTree/settings/user.html:94
 msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
@@ -6195,15 +6334,15 @@ msgstr ""
 
 #: templates/InvenTree/settings/user.html:101
 msgid "Add Email Address"
-msgstr ""
+msgstr "Aggiungi indirizzo email"
 
 #: templates/InvenTree/settings/user.html:111
 msgid "Enter e-mail address"
-msgstr ""
+msgstr "Inserisci il tuo indirizzo email"
 
 #: templates/InvenTree/settings/user.html:113
 msgid "Add Email"
-msgstr ""
+msgstr "Aggiungi Email"
 
 #: templates/InvenTree/settings/user.html:123
 msgid "Social Accounts"
@@ -6226,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Selezione una categoria"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6252,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6269,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Selezione una categoria"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6295,29 +6430,21 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
-msgstr ""
+msgstr "Informazioni Versione InvenTree"
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
 msgid "Close"
-msgstr ""
+msgstr "Chiudi"
 
 #: templates/about.html:20
 msgid "InvenTree Version"
-msgstr ""
+msgstr "Versione di InvenTree"
 
 #: templates/about.html:25
 msgid "Development Version"
@@ -6325,7 +6452,7 @@ msgstr ""
 
 #: templates/about.html:28
 msgid "Up to Date"
-msgstr ""
+msgstr "Aggiornato"
 
 #: templates/about.html:30
 msgid "Update Available"
@@ -6341,7 +6468,7 @@ msgstr ""
 
 #: templates/about.html:53
 msgid "InvenTree Documentation"
-msgstr ""
+msgstr "Documentazione InvenTree"
 
 #: templates/about.html:58
 msgid "API Version"
@@ -6382,7 +6509,7 @@ msgstr ""
 #: templates/account/email_confirm.html:6
 #: templates/account/email_confirm.html:10
 msgid "Confirm Email Address"
-msgstr ""
+msgstr "Conferma l'indirizzo e-mail"
 
 #: templates/account/email_confirm.html:16
 #, python-format
@@ -6397,26 +6524,25 @@ msgstr ""
 #: templates/account/login.html:6 templates/account/login.html:16
 #: templates/account/login.html:39
 msgid "Sign In"
-msgstr ""
+msgstr "Accedi"
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
-msgstr ""
+msgstr "Se non hai ancora creato un account, per favore\n"
+"<a href=\"%(signup_url)s\">registrati</a> prima."
 
 #: templates/account/login.html:42
 msgid "Forgot Password?"
-msgstr ""
+msgstr "Password dimenticata?"
 
 #: templates/account/login.html:47
 msgid "InvenTree demo instance"
@@ -6424,7 +6550,7 @@ msgstr ""
 
 #: templates/account/login.html:47
 msgid "Click here for login details"
-msgstr ""
+msgstr "Clicca qui per i dettagli di accesso"
 
 #: templates/account/login.html:55
 msgid "or use SSO"
@@ -6433,32 +6559,32 @@ msgstr ""
 #: templates/account/logout.html:5 templates/account/logout.html:8
 #: templates/account/logout.html:20
 msgid "Sign Out"
-msgstr ""
+msgstr "Esci"
 
 #: templates/account/logout.html:10
 msgid "Are you sure you want to sign out?"
-msgstr ""
+msgstr "Sei sicuro di voler uscire?"
 
 #: templates/account/logout.html:19
 msgid "Back to Site"
-msgstr ""
+msgstr "Torna al sito"
 
 #: templates/account/password_reset.html:5
 #: templates/account/password_reset.html:12
 msgid "Password Reset"
-msgstr ""
+msgstr "Reimposta Password"
 
 #: templates/account/password_reset.html:18
 msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
-msgstr ""
+msgstr "Hai dimenticato la password? Inserisci il tuo indirizzo e-mail qui sotto, e ti invieremo una e-mail che ti permetterà di reimpostarla."
 
 #: templates/account/password_reset.html:23
 msgid "Reset My Password"
-msgstr ""
+msgstr "Reimposta la Mia Password"
 
 #: templates/account/password_reset.html:27 templates/account/signup.html:36
 msgid "This function is currently disabled. Please contact an administrator."
-msgstr ""
+msgstr "Questa funzione è attualmente disabilitata. Contatta un amministratore."
 
 #: templates/account/password_reset_from_key.html:7
 msgid "Bad Token"
@@ -6467,26 +6593,24 @@ msgstr ""
 #: templates/account/password_reset_from_key.html:11
 #, python-format
 msgid "The password reset link was invalid, possibly because it has already been used.  Please request a <a href=\"%(passwd_reset_url)s\">new password reset</a>."
-msgstr ""
+msgstr "Il link di reset della password non era valido, forse perché è già stato utilizzato. Si prega di richiedere un <a href=\"%(passwd_reset_url)s\">nuovo reset della password</a>."
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Inserire la password"
+msgstr "Cambia password"
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
-msgstr ""
+msgstr "La tua password è stata modificata."
 
 #: templates/account/signup.html:11 templates/account/signup.html:22
 msgid "Sign Up"
-msgstr ""
+msgstr "Registrati"
 
 #: templates/account/signup.html:13
 #, python-format
 msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>."
-msgstr ""
+msgstr "Hai già un account? Allora <a href=\"%(login_url)s\">accedi</a>."
 
 #: templates/account/signup.html:27
 msgid "Or use a SSO-provider for signup"
@@ -6494,19 +6618,19 @@ msgstr ""
 
 #: templates/admin_button.html:2
 msgid "View in administration panel"
-msgstr ""
+msgstr "Visualizza nel pannello di amministrazione"
 
 #: templates/base.html:96
 msgid "Server Restart Required"
-msgstr ""
+msgstr "È necessario riavviare il server"
 
 #: templates/base.html:99
 msgid "A configuration option has been changed which requires a server restart"
-msgstr ""
+msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
 
 #: templates/base.html:99
 msgid "Contact your system administrator for further information"
-msgstr ""
+msgstr "Contatta l'amministratore per maggiori informazioni"
 
 #: templates/email/build_order_required_stock.html:7
 msgid "Stock is required for the following build order"
@@ -6526,18 +6650,16 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Quantità"
+msgstr "Quantità richiesta"
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
-msgstr ""
+msgstr "Disponibile"
 
 #: templates/email/build_order_required_stock.html:38
 #: templates/email/low_stock_notification.html:31
@@ -6546,7 +6668,7 @@ msgstr ""
 
 #: templates/email/email.html:35
 msgid "InvenTree version"
-msgstr ""
+msgstr "Versione di InvenTree"
 
 #: templates/email/low_stock_notification.html:7
 #, python-format
@@ -6559,13 +6681,11 @@ msgstr ""
 
 #: templates/email/low_stock_notification.html:17
 msgid "Total Stock"
-msgstr ""
+msgstr "Giacenze Totali"
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Quantity"
 msgid "Minimum Quantity"
-msgstr "Quantità"
+msgstr "Quantità minima"
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6577,10 +6697,89 @@ msgstr ""
 
 #: templates/image_download.html:12
 msgid "Remote server must be accessible"
-msgstr ""
+msgstr "Il server remoto deve essere accessibile"
 
 #: templates/image_download.html:13
 msgid "Remote image must not exceed maximum allowable file size"
+msgstr "L'immagine remota non deve superare la dimensione massima consentita del file"
+
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr "elementi selezionati"
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "Seleziona Articoli"
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
 msgstr ""
 
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
@@ -6718,7 +6917,7 @@ msgstr ""
 
 #: templates/js/translated/barcode.js:439
 msgid "Check Stock Items into Location"
-msgstr ""
+msgstr "Controlla gli elementi in magazzino nella posizione"
 
 #: templates/js/translated/barcode.js:443
 #: templates/js/translated/barcode.js:573
@@ -6736,7 +6935,7 @@ msgstr ""
 
 #: templates/js/translated/barcode.js:511
 msgid "Stock Item already in this location"
-msgstr ""
+msgstr "Elemento in giacenza già in questa posizione"
 
 #: templates/js/translated/barcode.js:518
 msgid "Added stock item"
@@ -6748,106 +6947,104 @@ msgstr ""
 
 #: templates/js/translated/barcode.js:568
 msgid "Check Into Location"
-msgstr ""
+msgstr "Controlla Nella Posizione"
 
 #: templates/js/translated/barcode.js:633
 msgid "Barcode does not match a valid location"
-msgstr ""
+msgstr "Il codice a barre non corrisponde a una posizione valida"
 
 #: templates/js/translated/bom.js:184
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Diviso dall'elemento genitore"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -6903,7 +7100,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
 msgid "Location not specified"
-msgstr ""
+msgstr "Posizione non specificata"
 
 #: templates/js/translated/build.js:603
 msgid "No active build outputs found"
@@ -6912,20 +7109,20 @@ msgstr ""
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
 msgid "Edit stock allocation"
-msgstr ""
+msgstr "Modifica allocazione magazzino"
 
 #: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
 #: templates/js/translated/order.js:1306
 msgid "Delete stock allocation"
-msgstr ""
+msgstr "Elimina posizione giacenza"
 
 #: templates/js/translated/build.js:1072
 msgid "Edit Allocation"
-msgstr ""
+msgstr "Modifica Posizione"
 
 #: templates/js/translated/build.js:1082
 msgid "Remove Allocation"
-msgstr ""
+msgstr "Rimuovi Posizione"
 
 #: templates/js/translated/build.js:1107
 msgid "Substitute parts available"
@@ -6954,12 +7151,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:1262
 msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
+msgstr "Specificare il quantitativo assegnato allo stock"
 
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
@@ -6967,11 +7159,11 @@ msgstr ""
 
 #: templates/js/translated/build.js:1348
 msgid "Select source location (leave blank to take from all locations)"
-msgstr ""
+msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)"
 
 #: templates/js/translated/build.js:1377
 msgid "Confirm stock allocation"
-msgstr ""
+msgstr "Conferma l'assegnazione della giacenza"
 
 #: templates/js/translated/build.js:1378
 msgid "Allocate Stock Items to Build Order"
@@ -6979,7 +7171,7 @@ msgstr ""
 
 #: templates/js/translated/build.js:1389
 msgid "No matching stock locations"
-msgstr ""
+msgstr "Nessuna posizione di magazzino corrispondente"
 
 #: templates/js/translated/build.js:1451
 msgid "No matching stock items"
@@ -6989,8 +7181,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7015,7 +7207,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7027,146 +7219,144 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
-msgstr ""
+msgstr "Aggiungi fornitore"
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
-msgstr ""
+msgstr "Aggiungi fornitore articolo"
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
-msgstr ""
+msgstr "Modifica fornitore articolo"
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
-msgstr ""
+msgstr "Modifica azienda"
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
-msgstr ""
+msgstr "Fornitori articoli"
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
-msgid "Edit parameter"
-msgstr ""
-
 #: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+msgid "Edit parameter"
+msgstr "Modifica parametro"
+
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
-msgstr ""
+msgstr "Elimina il parametro"
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
-msgstr ""
+msgstr "Modifica parametro"
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
-msgstr ""
+msgstr "Elimina Parametri"
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
-msgstr ""
+msgstr "Nessun fornitore trovato"
 
 #: templates/js/translated/filters.js:178
 #: templates/js/translated/filters.js:420
 msgid "true"
-msgstr ""
+msgstr "vero"
 
 #: templates/js/translated/filters.js:182
 #: templates/js/translated/filters.js:421
 msgid "false"
-msgstr ""
+msgstr "falso"
 
 #: templates/js/translated/filters.js:204
 msgid "Select filter"
-msgstr ""
+msgstr "Seleziona filtro"
 
 #: templates/js/translated/filters.js:286
 msgid "Reload data"
-msgstr ""
+msgstr "Ricarica dati"
 
 #: templates/js/translated/filters.js:290
 msgid "Add new filter"
-msgstr ""
+msgstr "Aggiungi nuovo filtro"
 
 #: templates/js/translated/filters.js:293
 msgid "Clear all filters"
-msgstr ""
+msgstr "Cancella tutti i filtri"
 
 #: templates/js/translated/filters.js:329
 msgid "Create filter"
-msgstr ""
+msgstr "Crea filtro"
 
 #: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
 #: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
 msgid "Action Prohibited"
-msgstr ""
+msgstr "Azione Vietata"
 
 #: templates/js/translated/forms.js:351
 msgid "Create operation not allowed"
-msgstr ""
+msgstr "Crea operazione non consentita"
 
 #: templates/js/translated/forms.js:366
 msgid "Update operation not allowed"
-msgstr ""
+msgstr "Operazione di aggiornamento non consentita"
 
 #: templates/js/translated/forms.js:380
 msgid "Delete operation not allowed"
-msgstr ""
+msgstr "Operazione di eliminazione non consentita"
 
 #: templates/js/translated/forms.js:394
 msgid "View operation not allowed"
-msgstr ""
+msgstr "Mostra operazione non consentita"
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Deve essere un numero valido"
+msgstr "Inserisci un numero valido"
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7175,100 +7365,95 @@ msgstr ""
 
 #: templates/js/translated/forms.js:1457
 msgid "No results found"
-msgstr ""
+msgstr "Nessun risultato trovato"
 
 #: templates/js/translated/forms.js:1661
 msgid "Searching"
-msgstr ""
+msgstr "Ricerca"
 
 #: templates/js/translated/forms.js:1878
 msgid "Clear input"
-msgstr ""
+msgstr "Cancella input"
 
 #: templates/js/translated/helpers.js:19
 msgid "YES"
-msgstr ""
+msgstr "SÌ"
 
 #: templates/js/translated/helpers.js:21
 msgid "NO"
-msgstr ""
-
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
+msgstr "NO"
 
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
-msgstr ""
+msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette"
 
 #: templates/js/translated/label.js:48 templates/js/translated/label.js:98
 #: templates/js/translated/label.js:153
 msgid "No Labels Found"
-msgstr ""
+msgstr "Nessuna etichetta trovata"
 
 #: templates/js/translated/label.js:49
 msgid "No labels found which match selected stock item(s)"
-msgstr ""
+msgstr "Nessuna etichetta trovata che corrisponde agli elementi stock selezionati"
 
 #: templates/js/translated/label.js:80
 msgid "Select Stock Locations"
-msgstr ""
+msgstr "Seleziona Posizioni Giacenza"
 
 #: templates/js/translated/label.js:81
 msgid "Stock location(s) must be selected before printing labels"
-msgstr ""
+msgstr "Le allocazioni delle giacenze devono essere selezionate prima di stampare le etichette"
 
 #: templates/js/translated/label.js:99
 msgid "No labels found which match selected stock location(s)"
-msgstr ""
+msgstr "Nessuna etichetta trovata che corrisponde alle posizioni di magazzino selezionate"
 
 #: templates/js/translated/label.js:135
 msgid "Part(s) must be selected before printing labels"
-msgstr ""
+msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette"
 
 #: templates/js/translated/label.js:154
 msgid "No labels found which match the selected part(s)"
-msgstr ""
+msgstr "Nessuna etichetta trovata che corrisponde agli elementi stock selezionati"
 
 #: templates/js/translated/label.js:228
 msgid "stock items selected"
-msgstr ""
+msgstr "elemento stock creato"
 
 #: templates/js/translated/label.js:236
 msgid "Select Label"
-msgstr ""
+msgstr "Seleziona l'etichetta"
 
 #: templates/js/translated/label.js:251
 msgid "Select Label Template"
-msgstr ""
+msgstr "Seleziona Modello Etichetta"
 
 #: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
 #: templates/js/translated/modals.js:593
 msgid "Cancel"
-msgstr ""
+msgstr "Annulla"
 
 #: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
 #: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
 #: templates/modals.html:28 templates/modals.html:51
 msgid "Submit"
-msgstr ""
+msgstr "Invia"
 
 #: templates/js/translated/modals.js:117
 msgid "Form Title"
-msgstr ""
+msgstr "Titolo modulo"
 
 #: templates/js/translated/modals.js:380
 msgid "Waiting for server..."
-msgstr ""
+msgstr "In attesa del server..."
 
 #: templates/js/translated/modals.js:539
 msgid "Show Error Information"
-msgstr ""
+msgstr "Informazioni sull'errore"
 
 #: templates/js/translated/modals.js:592
 msgid "Accept"
-msgstr ""
+msgstr "Accetta"
 
 #: templates/js/translated/modals.js:649
 msgid "Loading Data"
@@ -7276,7 +7461,7 @@ msgstr ""
 
 #: templates/js/translated/modals.js:915
 msgid "Invalid response from server"
-msgstr ""
+msgstr "Risposta dal server non valida"
 
 #: templates/js/translated/modals.js:915
 msgid "Form data missing from server response"
@@ -7304,15 +7489,15 @@ msgstr ""
 
 #: templates/js/translated/model_renderers.js:40
 msgid "Company ID"
-msgstr ""
+msgstr "ID azienda"
 
 #: templates/js/translated/model_renderers.js:77
 msgid "Stock ID"
-msgstr ""
+msgstr "ID Giacenza"
 
 #: templates/js/translated/model_renderers.js:130
 msgid "Location ID"
-msgstr ""
+msgstr "ID Posizione"
 
 #: templates/js/translated/model_renderers.js:147
 msgid "Build ID"
@@ -7320,19 +7505,19 @@ msgstr ""
 
 #: templates/js/translated/model_renderers.js:182
 msgid "Part ID"
-msgstr ""
+msgstr "Codice Articolo"
 
 #: templates/js/translated/model_renderers.js:236
 msgid "Order ID"
-msgstr ""
+msgstr "ID Ordine"
 
 #: templates/js/translated/model_renderers.js:256
 msgid "Category ID"
-msgstr ""
+msgstr "Id Categoria"
 
 #: templates/js/translated/model_renderers.js:293
 msgid "Manufacturer Part ID"
-msgstr ""
+msgstr "ID articolo produttore"
 
 #: templates/js/translated/model_renderers.js:322
 msgid "Supplier Part ID"
@@ -7340,7 +7525,7 @@ msgstr ""
 
 #: templates/js/translated/order.js:48
 msgid "Add Customer"
-msgstr ""
+msgstr "Aggiungi cliente"
 
 #: templates/js/translated/order.js:73
 msgid "Create Sales Order"
@@ -7352,7 +7537,7 @@ msgstr ""
 
 #: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
 msgid "Format"
-msgstr ""
+msgstr "Formato"
 
 #: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
 msgid "Select file format"
@@ -7368,23 +7553,23 @@ msgstr ""
 
 #: templates/js/translated/order.js:326
 msgid "Quantity to receive"
-msgstr ""
+msgstr "Quantità da ricevere"
 
 #: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
 msgid "Stock Status"
-msgstr ""
+msgstr "Stato giacenza"
 
 #: templates/js/translated/order.js:427
 msgid "Order Code"
-msgstr ""
+msgstr "Codice ordine"
 
 #: templates/js/translated/order.js:428
 msgid "Ordered"
-msgstr ""
+msgstr "Ordinato"
 
 #: templates/js/translated/order.js:430
 msgid "Receive"
-msgstr ""
+msgstr "Ricevuto"
 
 #: templates/js/translated/order.js:449
 msgid "Confirm receipt of items"
@@ -7416,16 +7601,16 @@ msgstr ""
 
 #: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
 msgid "Total"
-msgstr ""
+msgstr "Totale"
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
-msgstr ""
+msgstr "Prezzo Unitario"
 
 #: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
 msgid "Total Price"
-msgstr ""
+msgstr "Prezzo Totale"
 
 #: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
 msgid "Edit line item"
@@ -7445,27 +7630,27 @@ msgstr ""
 
 #: templates/js/translated/order.js:1055
 msgid "Invalid Customer"
-msgstr ""
+msgstr "Cliente non valido"
 
 #: templates/js/translated/order.js:1133
 msgid "No sales order allocations found"
-msgstr ""
+msgstr "Nessun ordine di vendita trovato"
 
 #: templates/js/translated/order.js:1226
 msgid "Edit Stock Allocation"
-msgstr ""
+msgstr "Modifica posizione giacenza"
 
 #: templates/js/translated/order.js:1244
 msgid "Delete Stock Allocation"
-msgstr ""
+msgstr "Elimina posizione giacenza"
 
 #: templates/js/translated/order.js:1286
 msgid "Stock location not specified"
-msgstr ""
+msgstr "Nessun posizione specificata"
 
 #: templates/js/translated/order.js:1535
 msgid "Fulfilled"
-msgstr ""
+msgstr "Soddisfatto"
 
 #: templates/js/translated/order.js:1579
 msgid "Allocate serial numbers"
@@ -7473,11 +7658,11 @@ msgstr ""
 
 #: templates/js/translated/order.js:1585
 msgid "Purchase stock"
-msgstr ""
+msgstr "Prezzo d'acquisto"
 
 #: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
 msgid "Calculate price"
-msgstr ""
+msgstr "Calcola il prezzo"
 
 #: templates/js/translated/order.js:1596
 msgid "Delete line item "
@@ -7495,356 +7680,294 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
-msgstr ""
+msgstr "Attributi Articolo"
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
-msgstr ""
+msgstr "Opzioni Fornitore"
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:165
-msgid "Create Initial Stock"
-msgstr ""
+msgstr "Aggiungi Categoria Articolo"
 
 #: templates/js/translated/part.js:166
-msgid "Create an initial stock item for this part"
-msgstr ""
+msgid "Create Initial Stock"
+msgstr "Crea giacenza iniziale"
 
-#: templates/js/translated/part.js:173
-msgid "Initial Stock Quantity"
-msgstr ""
+#: templates/js/translated/part.js:167
+msgid "Create an initial stock item for this part"
+msgstr "Crea una giacenza iniziale per quest'articolo"
 
 #: templates/js/translated/part.js:174
+msgid "Initial Stock Quantity"
+msgstr "Quantità iniziale"
+
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
-msgstr ""
-
-#: templates/js/translated/part.js:192
-msgid "Copy Category Parameters"
-msgstr ""
+msgstr "Selezione la posizione di destinazione della giacenza"
 
 #: templates/js/translated/part.js:193
+msgid "Copy Category Parameters"
+msgstr "Copia Parametri Categoria"
+
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
-msgid "Add Supplier Data"
-msgstr ""
-
 #: templates/js/translated/part.js:202
+msgid "Add Supplier Data"
+msgstr "Aggiungi Dati Fornitore"
+
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
-msgid "Copy Image"
-msgstr ""
-
 #: templates/js/translated/part.js:259
-msgid "Copy image from original part"
-msgstr ""
+msgid "Copy Image"
+msgstr "Copia immagine"
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:260
+msgid "Copy image from original part"
+msgstr "Copia immagine dall'articolo originale"
+
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
-msgid "Copy Parameters"
-msgstr ""
-
 #: templates/js/translated/part.js:275
+msgid "Copy Parameters"
+msgstr "Copia parametri"
+
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
-msgstr ""
+msgstr "Categoria articolo principale"
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
-msgstr ""
+msgstr "Modifica l'articolo"
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
-msgstr ""
+msgstr "Articolo modificato"
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
-msgstr ""
+msgstr "Parte virtuale"
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
-msgstr ""
+msgstr "Parte sottoscritta"
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
-msgstr ""
+msgstr "Parte vendibile"
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
+msgstr "Nessuna variante trovata"
+
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
-msgstr ""
+msgstr "Nessun articolo trovato"
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
-msgstr ""
+msgstr "Nessuna categoria"
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
-msgstr ""
+msgstr "In esaurimento"
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
-msgstr ""
+msgstr "Visualizza come elenco"
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
-msgstr ""
+msgstr "Visualizza come griglia"
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
-msgstr ""
+msgstr "Visualizza come struttura ad albero"
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
-msgstr ""
+msgstr "Categoria sottoscritta"
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
-msgstr ""
+msgstr "Percorso"
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
-msgstr ""
+msgstr "Modifica ${human_name}"
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
-msgstr ""
+msgstr "Elimina ${human_name}"
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
-msgstr ""
+msgstr "Prezzo Singolo"
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
 
 #: templates/js/translated/stock.js:90
 msgid "Parent stock location"
-msgstr ""
+msgstr "Posizione giacenza principale"
 
 #: templates/js/translated/stock.js:126
 msgid "New Stock Location"
-msgstr ""
+msgstr "Nuova posizione giacenza"
 
 #: templates/js/translated/stock.js:189
 msgid "Enter initial quantity for this stock item"
-msgstr ""
+msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
 
 #: templates/js/translated/stock.js:195
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr ""
+msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created new stock item"
-msgstr "Elemento stock modificato"
+msgstr "Crea nuova allocazione magazzino"
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created multiple stock items"
-msgstr "Elemento stock modificato"
+msgstr "Creato più elementi stock"
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
-msgstr ""
+msgstr "Esporta giacenza"
 
 #: templates/js/translated/stock.js:401
 msgid "Include Sublocations"
-msgstr ""
+msgstr "Includi sotto allocazioni"
 
 #: templates/js/translated/stock.js:402
 msgid "Include stock items in sublocations"
-msgstr ""
+msgstr "Includi elementi in giacenza nelle sottoallocazioni"
 
 #: templates/js/translated/stock.js:444
 msgid "Transfer Stock"
-msgstr ""
+msgstr "Trasferisci giacenza"
 
 #: templates/js/translated/stock.js:445
 msgid "Move"
-msgstr ""
+msgstr "Sposta"
 
 #: templates/js/translated/stock.js:451
 msgid "Count Stock"
-msgstr ""
+msgstr "Conta giacenza"
 
 #: templates/js/translated/stock.js:452
 msgid "Count"
-msgstr ""
+msgstr "Conta"
 
 #: templates/js/translated/stock.js:456
 msgid "Remove Stock"
-msgstr ""
+msgstr "Rimuovi giacenza"
 
 #: templates/js/translated/stock.js:457
 msgid "Take"
-msgstr ""
+msgstr "Prendi"
 
 #: templates/js/translated/stock.js:461
 msgid "Add Stock"
-msgstr ""
+msgstr "Aggiungi giacenza"
 
 #: templates/js/translated/stock.js:462 users/models.py:200
 msgid "Add"
-msgstr ""
+msgstr "Aggiungi"
 
 #: templates/js/translated/stock.js:466 templates/stock_table.html:56
 msgid "Delete Stock"
-msgstr ""
+msgstr "Elimina Stock"
 
 #: templates/js/translated/stock.js:555
 msgid "Quantity cannot be adjusted for serialized stock"
@@ -7852,31 +7975,31 @@ msgstr ""
 
 #: templates/js/translated/stock.js:555
 msgid "Specify stock quantity"
-msgstr ""
+msgstr "Specificare la quantità di magazzino"
 
 #: templates/js/translated/stock.js:595
 msgid "You must select at least one available stock item"
-msgstr ""
+msgstr "Devi selezionare almeno un articolo disponibile"
 
 #: templates/js/translated/stock.js:753
 msgid "PASS"
-msgstr ""
+msgstr "PASS"
 
 #: templates/js/translated/stock.js:755
 msgid "FAIL"
-msgstr ""
+msgstr "FAIL"
 
 #: templates/js/translated/stock.js:760
 msgid "NO RESULT"
-msgstr ""
+msgstr "NESSUN RISULTATO"
 
 #: templates/js/translated/stock.js:782
 msgid "Add test result"
-msgstr ""
+msgstr "Aggiungi risultato test"
 
 #: templates/js/translated/stock.js:808
 msgid "No test results found"
-msgstr ""
+msgstr "Nessun risultato di prova trovato"
 
 #: templates/js/translated/stock.js:865
 msgid "Test Date"
@@ -7884,27 +8007,27 @@ msgstr ""
 
 #: templates/js/translated/stock.js:972
 msgid "In production"
-msgstr ""
+msgstr "In produzione"
 
 #: templates/js/translated/stock.js:976
 msgid "Installed in Stock Item"
-msgstr ""
+msgstr "Installato nell'elemento stock"
 
 #: templates/js/translated/stock.js:980
 msgid "Shipped to customer"
-msgstr ""
+msgstr "Spedito al cliente"
 
 #: templates/js/translated/stock.js:984
 msgid "Assigned to Sales Order"
-msgstr ""
+msgstr "Assegnato all'ordine di vendita"
 
 #: templates/js/translated/stock.js:990
 msgid "No stock location set"
-msgstr ""
+msgstr "Nessuna giacenza impostata"
 
 #: templates/js/translated/stock.js:1148
 msgid "Stock item is in production"
-msgstr ""
+msgstr "L'articolo di magazzino è in produzione"
 
 #: templates/js/translated/stock.js:1153
 msgid "Stock item assigned to sales order"
@@ -7912,27 +8035,27 @@ msgstr ""
 
 #: templates/js/translated/stock.js:1156
 msgid "Stock item assigned to customer"
-msgstr ""
+msgstr "Articolo stock assegnato al cliente"
 
 #: templates/js/translated/stock.js:1160
 msgid "Stock item has expired"
-msgstr ""
+msgstr "L'articolo stock è scaduto"
 
 #: templates/js/translated/stock.js:1162
 msgid "Stock item will expire soon"
-msgstr ""
+msgstr "Articolo in giacenza prossimo alla scadenza"
 
 #: templates/js/translated/stock.js:1166
 msgid "Stock item has been allocated"
-msgstr ""
+msgstr "L'articolo stock è stato allocato"
 
 #: templates/js/translated/stock.js:1170
 msgid "Stock item has been installed in another item"
-msgstr ""
+msgstr "L'elemento stock è stato installato in un altro articolo"
 
 #: templates/js/translated/stock.js:1177
 msgid "Stock item has been rejected"
-msgstr ""
+msgstr "L'articolo stock è stato rifiutato"
 
 #: templates/js/translated/stock.js:1179
 msgid "Stock item is lost"
@@ -7943,13 +8066,13 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
-msgstr ""
+msgstr "Esaurito"
 
 #: templates/js/translated/stock.js:1235
 msgid "Stocktake"
-msgstr ""
+msgstr "Inventario"
 
 #: templates/js/translated/stock.js:1308
 msgid "Supplier part not specified"
@@ -7961,7 +8084,7 @@ msgstr ""
 
 #: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
 msgid "items"
-msgstr ""
+msgstr "elementi"
 
 #: templates/js/translated/stock.js:1455
 msgid "batches"
@@ -7969,11 +8092,11 @@ msgstr ""
 
 #: templates/js/translated/stock.js:1482
 msgid "locations"
-msgstr ""
+msgstr "posizione"
 
 #: templates/js/translated/stock.js:1484
 msgid "Undefined location"
-msgstr ""
+msgstr "Posizione non definita"
 
 #: templates/js/translated/stock.js:1658
 msgid "Set Stock Status"
@@ -7989,15 +8112,11 @@ msgstr ""
 
 #: templates/js/translated/stock.js:1897
 msgid "Invalid date"
-msgstr ""
-
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
+msgstr "Data non valida"
 
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
-msgstr ""
+msgstr "La posizione non esiste più"
 
 #: templates/js/translated/stock.js:1963
 msgid "Purchase order no longer exists"
@@ -8013,11 +8132,11 @@ msgstr ""
 
 #: templates/js/translated/stock.js:2023
 msgid "Added"
-msgstr ""
+msgstr "Aggiunto"
 
 #: templates/js/translated/stock.js:2031
 msgid "Removed"
-msgstr ""
+msgstr "Rimosso"
 
 #: templates/js/translated/stock.js:2072
 msgid "Edit tracking entry"
@@ -8031,6 +8150,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr "Seriale"
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8045,317 +8168,317 @@ msgstr ""
 
 #: templates/js/translated/table_filters.js:64
 msgid "Validated"
-msgstr ""
+msgstr "Convalidato"
 
 #: templates/js/translated/table_filters.js:72
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
-msgstr ""
+msgstr "Includi sottoallocazioni/posizioni"
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
-msgstr ""
+msgstr "Includi posizioni"
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
-msgstr ""
+msgstr "Includi sottocategorie"
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
-msgstr ""
+msgstr "Sottoscritto"
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
-msgstr ""
+msgstr "Codice Lotto"
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
-msgstr ""
+msgstr "Elementi attivi"
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
-msgstr ""
+msgstr "L'elemento è stato posizionato"
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
-msgstr ""
+msgstr "Includi elementi in giacenza nelle sottoallocazioni"
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:187
-msgid "In Production"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:188
-msgid "Show items which are in production"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:192
-msgid "Include Variants"
-msgstr ""
+msgstr "Mostra gli elementi che sono in giacenza"
 
 #: templates/js/translated/table_filters.js:193
-msgid "Include stock items for variant parts"
-msgstr ""
+msgid "In Production"
+msgstr "In Produzione"
 
-#: templates/js/translated/table_filters.js:197
-msgid "Installed"
-msgstr ""
+#: templates/js/translated/table_filters.js:194
+msgid "Show items which are in production"
+msgstr "Mostra gli elementi in produzione"
 
 #: templates/js/translated/table_filters.js:198
-msgid "Show stock items which are installed in another item"
-msgstr ""
+msgid "Include Variants"
+msgstr "Includi Varianti"
+
+#: templates/js/translated/table_filters.js:199
+msgid "Include stock items for variant parts"
+msgstr "Includi gli articoli stock per le varianti degli articoli"
 
 #: templates/js/translated/table_filters.js:203
+msgid "Installed"
+msgstr "Installato"
+
+#: templates/js/translated/table_filters.js:204
+msgid "Show stock items which are installed in another item"
+msgstr "Mostra gli elementi stock che sono installati in un altro elemento"
+
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
-msgstr ""
+msgstr "Mostra elementi che sono stati assegnati a un cliente"
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
-msgstr ""
+msgstr "Stato magazzino"
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
-msgstr ""
+msgstr "Ha il prezzo d'acquisto"
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:242
-msgid "Show stock items which have expired"
-msgstr ""
+msgstr "Mostra gli articoli di magazzino che hanno un prezzo di acquisto impostato"
 
 #: templates/js/translated/table_filters.js:248
+msgid "Show stock items which have expired"
+msgstr "Mostra gli elementi in giacenza scaduti"
+
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
-msgstr ""
+msgstr "Mostra giacenza prossima alla scadenza"
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
-msgstr ""
+msgstr "Stato Build"
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
-msgstr ""
+msgstr "Stato dell'ordine"
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
-msgstr ""
+msgstr "In Sospeso"
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:357
-msgid "Has IPN"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:358
-msgid "Part has internal part number"
-msgstr ""
+msgstr "Includi articoli nelle sottocategorie"
 
 #: templates/js/translated/table_filters.js:363
+msgid "Has IPN"
+msgstr "Ha IPN"
+
+#: templates/js/translated/table_filters.js:364
+msgid "Part has internal part number"
+msgstr "L'articolo possiede un part number interno"
+
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
-msgstr ""
+msgstr "Visualizza articoli attivi"
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
-msgstr ""
+msgstr "Disponibilità"
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
-msgstr ""
+msgstr "Acquistabile"
 
 #: templates/js/translated/tables.js:368
 msgid "Loading data"
-msgstr ""
+msgstr "Caricamento dati"
 
 #: templates/js/translated/tables.js:371
 msgid "rows per page"
-msgstr ""
+msgstr "righe per pagina"
 
 #: templates/js/translated/tables.js:374
 msgid "Showing"
-msgstr ""
+msgstr "Visualizzo"
 
 #: templates/js/translated/tables.js:374
 msgid "to"
-msgstr ""
+msgstr "a"
 
 #: templates/js/translated/tables.js:374
 msgid "of"
-msgstr ""
+msgstr "di"
 
 #: templates/js/translated/tables.js:374
 msgid "rows"
-msgstr ""
+msgstr "righe"
 
 #: templates/js/translated/tables.js:377 templates/search_form.html:6
 #: templates/search_form.html:7
 msgid "Search"
-msgstr ""
+msgstr "Cerca"
 
 #: templates/js/translated/tables.js:380
 msgid "No matching results"
-msgstr ""
+msgstr "Nessun risultato corrispondente"
 
 #: templates/js/translated/tables.js:383
 msgid "Hide/Show pagination"
-msgstr ""
+msgstr "Mostra/nascondi la paginazione"
 
 #: templates/js/translated/tables.js:386
 msgid "Refresh"
-msgstr ""
+msgstr "Aggiorna"
 
 #: templates/js/translated/tables.js:389
 msgid "Toggle"
-msgstr ""
+msgstr "Attiva/disattiva"
 
 #: templates/js/translated/tables.js:392
 msgid "Columns"
-msgstr ""
+msgstr "Colonne"
 
 #: templates/js/translated/tables.js:395
 msgid "All"
-msgstr ""
+msgstr "Tutti"
 
 #: templates/navbar.html:40
 msgid "Buy"
-msgstr ""
+msgstr "Acquista"
 
 #: templates/navbar.html:52
 msgid "Sell"
-msgstr ""
+msgstr "Vendi"
 
 #: templates/navbar.html:86 users/models.py:39
 msgid "Admin"
-msgstr ""
+msgstr "Admin"
 
 #: templates/navbar.html:88
 msgid "Logout"
-msgstr ""
+msgstr "Esci"
 
 #: templates/navbar.html:90
 msgid "Login"
-msgstr ""
+msgstr "Accedi"
 
 #: templates/navbar.html:111
 msgid "About InvenTree"
-msgstr ""
+msgstr "Informazioni Su InvenTree"
 
 #: templates/navbar_demo.html:5
 msgid "InvenTree demo mode"
-msgstr ""
+msgstr "Modalità demo InvenTree"
 
 #: templates/qr_code.html:11
 msgid "QR data not provided"
-msgstr ""
+msgstr "Dati QR non forniti"
 
 #: templates/registration/logged_out.html:6
 msgid "You were logged out successfully."
-msgstr ""
+msgstr "Sei stato disconnesso con successo."
 
 #: templates/registration/logged_out.html:8
 msgid "Log in again"
-msgstr ""
+msgstr "Accedi di nuovo"
 
 #: templates/stats.html:9
 msgid "Server"
-msgstr ""
+msgstr "Server"
 
 #: templates/stats.html:13
 msgid "Instance Name"
-msgstr ""
+msgstr "Nome istanza"
 
 #: templates/stats.html:18
 msgid "Database"
-msgstr ""
+msgstr "Database"
 
 #: templates/stats.html:26
 msgid "Server is running in debug mode"
-msgstr ""
+msgstr "Server in esecuzione in modalità debug"
 
 #: templates/stats.html:33
 msgid "Docker Mode"
-msgstr ""
+msgstr "Modalità Docker"
 
 #: templates/stats.html:34
 msgid "Server is deployed using docker"
-msgstr ""
+msgstr "Il server è distribuito utilizzando docker"
 
 #: templates/stats.html:40
 msgid "Server status"
-msgstr ""
+msgstr "Stato del Server"
 
 #: templates/stats.html:43
 msgid "Healthy"
-msgstr ""
+msgstr "Healthy"
 
 #: templates/stats.html:45
 msgid "Issues detected"
-msgstr ""
+msgstr "Problemi rilevati"
 
 #: templates/stats.html:52
 msgid "Background Worker"
@@ -8363,128 +8486,129 @@ msgstr ""
 
 #: templates/stats.html:55
 msgid "Background worker not running"
-msgstr ""
+msgstr "Processo in background non in esecuzione"
 
 #: templates/stats.html:63
 msgid "Email Settings"
-msgstr ""
+msgstr "Email Settings"
 
 #: templates/stats.html:66
 msgid "Email settings not configured"
-msgstr ""
+msgstr "Impostazioni dell'email non configurate"
 
 #: templates/stock_table.html:14
 msgid "Export Stock Information"
-msgstr ""
+msgstr "Esporta Informazioni Di Giacenza"
 
 #: templates/stock_table.html:20
 msgid "Barcode Actions"
-msgstr ""
+msgstr "Azioni Barcode"
 
 #: templates/stock_table.html:36
 msgid "Print test reports"
-msgstr ""
+msgstr "Stampa report di prova"
 
 #: templates/stock_table.html:43
 msgid "Stock Options"
-msgstr ""
+msgstr "Opzioni Magazzino"
 
 #: templates/stock_table.html:48
 msgid "Add to selected stock items"
-msgstr ""
+msgstr "Aggiungi alle voci stock selezionate"
 
 #: templates/stock_table.html:49
 msgid "Remove from selected stock items"
-msgstr ""
+msgstr "Rimuovi dagli elementi stock selezionati"
 
 #: templates/stock_table.html:50
 msgid "Stocktake selected stock items"
-msgstr ""
+msgstr "Inventario articoli di magazzino selezionati"
 
 #: templates/stock_table.html:51
 msgid "Move selected stock items"
-msgstr ""
+msgstr "Sposta gli elementi stock selezionati"
 
 #: templates/stock_table.html:51
 msgid "Move stock"
-msgstr ""
+msgstr "Sposta giacenza"
 
 #: templates/stock_table.html:52
 msgid "Order selected items"
-msgstr ""
+msgstr "Ordina articolo selezionato"
 
 #: templates/stock_table.html:53
 msgid "Change status"
-msgstr ""
+msgstr "Modifica stato"
 
 #: templates/stock_table.html:53
 msgid "Change stock status"
-msgstr ""
+msgstr "Modifica stato stock"
 
 #: templates/stock_table.html:56
 msgid "Delete selected items"
-msgstr ""
+msgstr "Elimina articoli selezionati"
 
 #: templates/yesnolabel.html:4
 msgid "Yes"
-msgstr ""
+msgstr "Si"
 
 #: templates/yesnolabel.html:6
 msgid "No"
-msgstr ""
+msgstr "No"
 
 #: users/admin.py:64
 msgid "Users"
-msgstr ""
+msgstr "Utenti"
 
 #: users/admin.py:65
 msgid "Select which users are assigned to this group"
-msgstr ""
+msgstr "Selezionare quali utenti sono assegnati a questo gruppo"
 
 #: users/admin.py:187
 msgid "The following users are members of multiple groups:"
-msgstr ""
+msgstr "Gli utenti seguenti sono membri di più gruppi:"
 
 #: users/admin.py:210
 msgid "Personal info"
-msgstr ""
+msgstr "Informazioni personali"
 
 #: users/admin.py:211
 msgid "Permissions"
-msgstr ""
+msgstr "Permessi"
 
 #: users/admin.py:214
 msgid "Important dates"
-msgstr ""
+msgstr "Date Importanti"
 
 #: users/models.py:187
 msgid "Permission set"
-msgstr ""
+msgstr "Impostazione autorizzazioni"
 
 #: users/models.py:195
 msgid "Group"
-msgstr ""
+msgstr "Gruppo"
 
 #: users/models.py:198
 msgid "View"
-msgstr ""
+msgstr "Visualizza"
 
 #: users/models.py:198
 msgid "Permission to view items"
-msgstr ""
+msgstr "Autorizzazione a visualizzare gli articoli"
 
 #: users/models.py:200
 msgid "Permission to add items"
-msgstr ""
+msgstr "Autorizzazione ad aggiungere elementi"
 
 #: users/models.py:202
 msgid "Change"
-msgstr ""
+msgstr "Modificare"
 
 #: users/models.py:202
 msgid "Permissions to edit items"
-msgstr ""
+msgstr "Permessi per modificare gli elementi"
 
 #: users/models.py:204
 msgid "Permission to delete items"
-msgstr ""
+msgstr "Autorizzazione ad eliminare gli elementi"
+
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 70f01ea9ce..31263b2096 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Japanese\n"
 "Language: ja_JP\n"
@@ -132,7 +132,7 @@ msgstr "ファイルコメント"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "ユーザー"
@@ -173,8 +173,9 @@ msgstr "無効な選択です"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "お名前"
@@ -185,18 +186,19 @@ msgstr "お名前"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "説明"
 
@@ -216,83 +218,83 @@ msgstr "有効な数字でなければなりません"
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "ドイツ語"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "英語"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "フランス語"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "ポーランド語"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "トルコ語"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "パーツ"
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,17 +924,15 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr ""
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "完了したパーツの場所"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -1067,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1172,16 +1180,14 @@ msgid "Destination location not specified"
 msgstr ""
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
-#, fuzzy
-#| msgid "Delete Parts"
 msgid "Allocated Parts"
-msgstr "パーツを削除"
+msgstr ""
 
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1200,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1220,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1272,19 +1278,21 @@ msgid "Complete selected items"
 msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Complete"
 msgid "Complete outputs"
-msgstr "完了"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1305,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1342,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1362,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1492,10 +1516,8 @@ msgid "No group"
 msgstr ""
 
 #: common/models.py:601
-#, fuzzy
-#| msgid "Order required parts"
 msgid "Restart required"
-msgstr "注文必須パーツ"
+msgstr ""
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
@@ -1549,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1615,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr "テンプレート"
 
@@ -1623,9 +1645,9 @@ msgstr "テンプレート"
 msgid "Parts are templates by default"
 msgstr "パーツはデフォルトのテンプレートです"
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr "アセンブリ"
 
@@ -1634,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr "コンポーネント"
 
@@ -1651,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr "パーツはデフォルトで購入可能です"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1661,8 +1683,8 @@ msgstr "パーツはデフォルトで販売可能です"
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr "追跡可能"
 
@@ -2101,10 +2123,8 @@ msgid "Display stock levels in search preview window"
 msgstr ""
 
 #: common/models.py:1139
-#, fuzzy
-#| msgid "New Manufacturer Part"
 msgid "Hide Inactive Parts"
-msgstr "新しいメーカ―・パーツ"
+msgstr ""
 
 #: common/models.py:1140
 msgid "Hide inactive parts in search preview window"
@@ -2140,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2148,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2178,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2205,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2249,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2308,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2350,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2361,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2379,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2427,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2453,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2492,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2502,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr "サプライヤー・パーツ"
 
@@ -2513,7 +2538,7 @@ msgstr "新しいサプライヤー・パーツを作成"
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr "新しいサプライヤー・パーツ"
 
@@ -2521,8 +2546,8 @@ msgstr "新しいサプライヤー・パーツ"
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2550,7 +2575,7 @@ msgstr "メーカー・パーツ"
 msgid "Create new manufacturer part"
 msgstr "新しいメーカー・パーツを作成"
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr "新しいメーカ―・パーツ"
 
@@ -2559,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2579,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2609,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2637,12 +2667,12 @@ msgid "Order part"
 msgstr "パーツの注文"
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr "メーカー・パーツの編集"
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr "メーカー・パーツを削除"
 
@@ -2653,27 +2683,29 @@ msgstr "内部パーツ"
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2689,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2701,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2725,10 +2773,8 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Create new supplier part"
 msgid "Create new stock item"
-msgstr "新しいサプライヤー・パーツを作成"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2753,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2761,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2778,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2792,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2824,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2898,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3203,10 +3264,8 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Order Parts"
 msgid "Order actions"
-msgstr "パーツの注文"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
@@ -3331,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3404,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3423,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3714,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3759,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr "パーツ"
 
@@ -3827,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3836,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3849,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3906,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3956,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3973,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3982,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3990,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4052,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4086,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4097,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4168,15 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete parts"
 msgid "Delete Items"
-msgstr "パーツを削除"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4186,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4228,38 +4320,28 @@ msgid "Category Actions"
 msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4274,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4360,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4385,10 +4472,8 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Manufacturer Part Details"
 msgid "Part Details"
-msgstr "メーカー・パーツの詳細"
+msgstr ""
 
 #: part/templates/part/detail.html:66
 msgid "Minimum stock level"
@@ -4435,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4443,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4646,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4659,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4679,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4719,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4753,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4823,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4845,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4865,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4888,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5054,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5106,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5124,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5391,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5425,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "No serial numbers found"
 msgid "Enter serial numbers for new items"
-msgstr "シリアル番号が見つかりません"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5471,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5592,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5780,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5812,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -5955,10 +6036,8 @@ msgid "Index"
 msgstr ""
 
 #: templates/InvenTree/index.html:88
-#, fuzzy
-#| msgid "Supplier Parts"
 msgid "Subscribed Parts"
-msgstr "サプライヤー・パーツ"
+msgstr ""
 
 #: templates/InvenTree/index.html:98
 msgid "Subscribed Categories"
@@ -6061,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6084,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6131,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6139,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6236,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6262,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6279,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "カテゴリの選択"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6305,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6411,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6480,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "パスワードを入力してください"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6536,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6589,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6764,94 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
-#, fuzzy
-#| msgid "Edit manufacturer part"
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
-msgstr "メーカー・パーツの編集"
+msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6962,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6995,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7021,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7033,87 +7218,87 @@ msgstr "メーカー・パーツの編集"
 msgid "Delete Manufacturer Part"
 msgstr "メーカー・パーツを削除"
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7169,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "有効な数字でなければなりません"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7199,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7425,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7501,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7793,10 +7913,8 @@ msgid "Enter serial numbers for new stock (or leave blank)"
 msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Create new supplier part"
 msgid "Created new stock item"
-msgstr "新しいサプライヤー・パーツを作成"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
 msgid "Created multiple stock items"
@@ -7947,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7995,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8035,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8055,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8493,11 +8611,3 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr ""
 
-#~ msgid "Manufacturer Part Stock"
-#~ msgstr "メーカー・パーツの在庫"
-
-#~ msgid "Manufacturer Part Orders"
-#~ msgstr "メーカー・パーツの注文"
-
-#~ msgid "All parts"
-#~ msgstr "全てのパーツ"
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 6589771a11..faaab622b5 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Korean\n"
 "Language: ko_KR\n"
@@ -132,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -185,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -216,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4248,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4334,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4415,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4618,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4631,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4651,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4691,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4725,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4795,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4817,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4837,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4860,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5026,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5078,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5096,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5363,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5441,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5562,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5750,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5782,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6029,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6052,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6099,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6107,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6228,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6245,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6269,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6375,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6498,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6551,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6726,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6922,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6955,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6981,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6993,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7157,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7383,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7459,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7903,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7951,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7991,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8011,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8448,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 462b8d79db..84d60370b5 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Dutch\n"
 "Language: nl_NL\n"
@@ -132,7 +132,7 @@ msgstr "Bijlage opmerking"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Gebruiker"
@@ -173,8 +173,9 @@ msgstr "Ongeldige keuze"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Naam"
@@ -185,18 +186,19 @@ msgstr "Naam"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Omschrijving"
 
@@ -216,83 +218,83 @@ msgstr "Moet een geldig nummer zijn"
 msgid "Filename"
 msgstr "Bestandsnaam"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Duits"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Grieks"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Engels"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Spaans"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Frans"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Hebreeuws"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Italiaans"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Japans"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Koreaans"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Nederlands"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Noors"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Pools"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Russisch"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Zweeds"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Thais"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Turks"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Vietnamees"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Chinees"
 
@@ -417,7 +419,7 @@ msgstr "Splits van bovenliggend item"
 msgid "Split child item"
 msgstr "Splits onderliggende item"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Naar klant verzonden"
 
@@ -547,19 +549,18 @@ msgstr "Barcode gekoppeld aan StockItem"
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr "Barcode gekoppeld aan StockItem"
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Aantal"
@@ -621,8 +622,10 @@ msgstr "Bouwopdracht"
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr "Bouwopdrachten"
 
@@ -635,7 +638,7 @@ msgstr "Bouwopdracht referentie"
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr "Referentie"
@@ -659,7 +662,7 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "Onderdeel"
 
@@ -796,16 +799,23 @@ msgstr "Externe Link"
 msgid "Link to external URL"
 msgstr "Link naar externe URL"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "Opmerkingen"
 
@@ -892,28 +902,20 @@ msgid "Build Output"
 msgstr ""
 
 #: build/serializers.py:146
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Build output does not match the parent build"
-msgstr "Bouwuitvoer komt niet overeen met bouwopdracht"
+msgstr ""
 
 #: build/serializers.py:150
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Output part does not match BuildOrder part"
-msgstr "Bouwuitvoer komt niet overeen met bouwopdracht"
+msgstr ""
 
 #: build/serializers.py:154
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output has already been completed"
-msgstr "Bouwuitvoer is al voltooid"
+msgstr ""
 
 #: build/serializers.py:158
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output is not fully allocated"
-msgstr "Bouwuitvoer is al voltooid"
+msgstr ""
 
 #: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
 #: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
@@ -922,17 +924,15 @@ msgstr "Bouwuitvoer is al voltooid"
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr "Locatie"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Locatie van voltooide onderdelen"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -945,10 +945,8 @@ msgid "Status"
 msgstr "Status"
 
 #: build/serializers.py:213
-#, fuzzy
-#| msgid "No build output specified"
 msgid "A list of build outputs must be provided"
-msgstr "Geen bouwuitvoer opgegeven"
+msgstr ""
 
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
@@ -956,16 +954,12 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build Notes"
 msgid "Build output"
-msgstr "Bouw notities"
+msgstr ""
 
 #: build/serializers.py:278
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Build output must point to the same build"
-msgstr "Bouwuitvoer komt niet overeen met bouwopdracht"
+msgstr ""
 
 #: build/serializers.py:319
 msgid "bom_item.part must point to the same part as the build order"
@@ -998,10 +992,8 @@ msgid "Allocation items must be provided"
 msgstr ""
 
 #: build/tasks.py:92
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock required for build order"
-msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
+msgstr ""
 
 #: build/templates/build/build_base.html:39
 #: order/templates/order/order_base.html:28
@@ -1010,10 +1002,8 @@ msgid "Print actions"
 msgstr "Afdruk acties"
 
 #: build/templates/build/build_base.html:43
-#, fuzzy
-#| msgid "Print Build Order"
 msgid "Print build order report"
-msgstr "Print Bouw Order"
+msgstr ""
 
 #: build/templates/build/build_base.html:50
 msgid "Build actions"
@@ -1085,16 +1075,16 @@ msgstr "Deze bouw was verwacht op %(target)s"
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr "Achterstallig"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1190,16 +1180,14 @@ msgid "Destination location not specified"
 msgstr ""
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
-#, fuzzy
-#| msgid "Build to allocate parts"
 msgid "Allocated Parts"
-msgstr "Bouw om onderdelen toe te wijzen"
+msgstr ""
 
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr "Batch"
 
@@ -1218,7 +1206,7 @@ msgstr "Geen doeldatum ingesteld"
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1238,7 +1226,7 @@ msgstr "Niet toegewezen voorraad"
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1278,37 +1266,33 @@ msgid "Create new build output"
 msgstr ""
 
 #: build/templates/build/detail.html:232
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "New Build Output"
-msgstr "Bouwkwaliteit"
+msgstr ""
 
 #: build/templates/build/detail.html:246
-#, fuzzy
-#| msgid "Printing Actions"
 msgid "Output Actions"
-msgstr "Afdrukacties"
+msgstr ""
 
 #: build/templates/build/detail.html:250
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete selected items"
-msgstr "Voltooide voorraadartikelen"
+msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Incomplete Outputs"
 msgid "Complete outputs"
-msgstr "Onvolledige bouwuitvoer"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "Bijlagen"
 
@@ -1329,32 +1313,36 @@ msgid "Edit Notes"
 msgstr "Notities Bewerken"
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1366,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1386,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1571,7 +1571,7 @@ msgstr "Download van URL"
 msgid "Allow download of remote images and files from external URL"
 msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr "Barcode ondersteuning"
 
@@ -1637,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1645,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1656,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1673,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1683,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -1767,10 +1767,8 @@ msgid "Format to display the part name"
 msgstr ""
 
 #: common/models.py:814
-#, fuzzy
-#| msgid "Test Reports"
 msgid "Enable Reports"
-msgstr "Testrapport"
+msgstr ""
 
 #: common/models.py:815
 msgid "Enable generation of reports"
@@ -2162,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2170,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2200,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2227,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2271,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2330,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2372,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2383,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2401,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2449,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2475,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2514,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2524,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2535,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2543,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2572,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2581,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2601,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2631,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2659,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2675,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2711,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2723,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2747,10 +2773,8 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Create new stock location"
 msgid "Create new stock item"
-msgstr "Maak nieuwe voorraadlocatie"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2775,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2783,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2800,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2814,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2846,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2920,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3215,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Received against purchase order"
 msgid "Print purchase order report"
-msgstr "Ontvangen tegen inkoopopdracht"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3227,17 +3264,13 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Order Parts"
 msgid "Order actions"
-msgstr "Bestel onderdelen"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
-#, fuzzy
-#| msgid "Edit Notes"
 msgid "Edit order"
-msgstr "Notities Bewerken"
+msgstr ""
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
@@ -3357,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3430,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3449,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3468,10 +3533,8 @@ msgid "Print sales order report"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:47
-#, fuzzy
-#| msgid "Print actions"
 msgid "Print packing list"
-msgstr "Afdruk acties"
+msgstr ""
 
 #: order/templates/order/sales_order_base.html:66
 #: order/templates/order/sales_order_base.html:67 order/views.py:222
@@ -3742,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3787,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3855,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3864,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3877,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3934,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3984,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -4001,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -4010,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -4018,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4080,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4114,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4125,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4150,10 +4212,8 @@ msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
 #: part/models.py:2860
-#, fuzzy
-#| msgid "Parent Build"
 msgid "Parent BOM item"
-msgstr "Bovenliggende bouw"
+msgstr ""
 
 #: part/models.py:2868
 msgid "Substitute part"
@@ -4176,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr ""
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "No stock location set"
 msgid "Low stock notification"
-msgstr "Geen voorraadlocatie ingesteld"
+msgstr ""
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4200,17 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
-#, fuzzy
-#| msgid "Build actions"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
-msgstr "Build acties"
+msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Verwijder item"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4220,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4250,56 +4308,40 @@ msgid "This will validate each line in the BOM."
 msgstr ""
 
 #: part/templates/part/category.html:24 part/templates/part/category.html:28
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "You are subscribed to notifications for this category"
-msgstr "Standaard locatie voor onderdelen in deze categorie"
+msgstr ""
 
 #: part/templates/part/category.html:32
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "Subscribe to notifications for this category"
-msgstr "Standaard locatie voor onderdelen in deze categorie"
+msgstr ""
 
 #: part/templates/part/category.html:38
-#, fuzzy
-#| msgid "Printing Actions"
 msgid "Category Actions"
-msgstr "Afdrukacties"
+msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Edit location"
 msgid "Edit category"
-msgstr "Bewerk locatie"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Categorie selecteren"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Categorie selecteren"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Categorie selecteren"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Categorie selecteren"
+msgstr ""
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4314,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4400,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4425,10 +4472,8 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Stock Details"
 msgid "Part Details"
-msgstr "Voorraadgegevens"
+msgstr ""
 
 #: part/templates/part/detail.html:66
 msgid "Minimum stock level"
@@ -4475,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4483,118 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
-#, fuzzy
-#| msgid "Print actions"
+#: part/templates/part/detail.html:345
 msgid "Export actions"
-msgstr "Afdruk acties"
+msgstr ""
 
-#: part/templates/part/detail.html:375
-#, fuzzy
-#| msgid "Edit BOM"
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
-msgstr "Bewerk stuklijst"
+msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr "Nieuw stuklijstitem"
 
-#: part/templates/part/detail.html:397
-#, fuzzy
-#| msgid "New BOM Item"
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
-msgstr "Nieuw stuklijstitem"
+msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr "Toewijzingen bouwopdracht"
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4692,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4705,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4725,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4765,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4799,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4869,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4891,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4911,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4934,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5100,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5152,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5170,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr "Serienummer"
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5437,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5454,20 +5485,16 @@ msgid "Test notes"
 msgstr ""
 
 #: stock/serializers.py:166
-#, fuzzy
-#| msgid "Source stock item"
 msgid "Purchase price of this stock item"
-msgstr "Bron voorraadartikel"
+msgstr ""
 
 #: stock/serializers.py:173
 msgid "Purchase currency of this stock item"
 msgstr ""
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "Aantal items om te maken"
+msgstr ""
 
 #: stock/serializers.py:302
 #, python-brace-format
@@ -5475,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new items"
-msgstr "Voer serienummers in voor build-outputs"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5521,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5642,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5821,10 +5847,8 @@ msgid "New Location"
 msgstr "Nieuwe locatie"
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "No stock location set"
 msgid "Top level stock location"
-msgstr "Geen voorraadlocatie ingesteld"
+msgstr ""
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5832,17 +5856,10 @@ msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlo
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr "Sublocaties"
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5864,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6111,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6134,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6156,16 +6186,12 @@ msgid "Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit location"
 msgid "Edit Global Setting"
-msgstr "Bewerk locatie"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit User Information"
 msgid "Edit User Setting"
-msgstr "Gebruikersgegevens bewerken"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6185,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6193,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6290,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Categorie selecteren"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6316,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6333,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Categorie selecteren"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6359,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6465,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6483,10 +6544,8 @@ msgid "Forgot Password?"
 msgstr ""
 
 #: templates/account/login.html:47
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree demo instance"
-msgstr "Inventree Instantie Naam"
+msgstr ""
 
 #: templates/account/login.html:47
 msgid "Click here for login details"
@@ -6536,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Voer wachtwoord in"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6575,10 +6632,8 @@ msgid "Contact your system administrator for further information"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:7
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock is required for the following build order"
-msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:8
 #, python-format
@@ -6590,21 +6645,17 @@ msgid "Click on the following link to view this build order"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:14
-#, fuzzy
-#| msgid "Allow sale of expired stock"
 msgid "The following parts are low on required stock"
-msgstr "Verkoop verlopen voorraad toestaan"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Build Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Bouwkwaliteit"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6615,10 +6666,8 @@ msgid "You are receiving this email because you are subscribed to notifications
 msgstr ""
 
 #: templates/email/email.html:35
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree version"
-msgstr "Inventree Instantie Naam"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:7
 #, python-format
@@ -6630,16 +6679,12 @@ msgid "Click on the following link to view this part"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:17
-#, fuzzy
-#| msgid "Count stock"
 msgid "Total Stock"
-msgstr "Voorraad tellen"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Minimum Quantity"
-msgstr "Bouwkwaliteit"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6657,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6832,100 +6956,94 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
-#, fuzzy
-#| msgid "Are you sure you wish to cancel this build?"
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
-msgstr "Weet je zeker dat je de bouw wilt annuleren?"
+msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
-#, fuzzy
-#| msgid "Are you sure you wish to cancel this build?"
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
-msgstr "Weet je zeker dat je de bouw wilt annuleren?"
+msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Splits van bovenliggend item"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -6952,22 +7070,16 @@ msgid "Delete build output"
 msgstr ""
 
 #: templates/js/translated/build.js:184
-#, fuzzy
-#| msgid "Are you sure you wish to cancel this build?"
 msgid "Are you sure you wish to unallocate stock items from this build?"
-msgstr "Weet je zeker dat je de bouw wilt annuleren?"
+msgstr ""
 
 #: templates/js/translated/build.js:202
-#, fuzzy
-#| msgid "Unallocate Stock"
 msgid "Unallocate Stock Items"
-msgstr "Niet toegewezen voorraad"
+msgstr ""
 
 #: templates/js/translated/build.js:220
-#, fuzzy
-#| msgid "Delete Build"
 msgid "Select Build Outputs"
-msgstr "Verwijder bouw"
+msgstr ""
 
 #: templates/js/translated/build.js:221
 msgid "At least one build output must be selected"
@@ -6978,10 +7090,8 @@ msgid "Output"
 msgstr ""
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Complete Build"
 msgid "Complete Build Outputs"
-msgstr "Voltooi Build"
+msgstr ""
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -6992,10 +7102,8 @@ msgid "Location not specified"
 msgstr ""
 
 #: templates/js/translated/build.js:603
-#, fuzzy
-#| msgid "No build output specified"
 msgid "No active build outputs found"
-msgstr "Geen bouwuitvoer opgegeven"
+msgstr ""
 
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
@@ -7044,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7077,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7103,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7115,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7251,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Moet een geldig nummer zijn"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7281,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7507,15 +7603,13 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
 #: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
-#, fuzzy
-#| msgid "Internal Prices"
 msgid "Total Price"
-msgstr "Interne prijzen"
+msgstr ""
 
 #: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
 msgid "Edit line item"
@@ -7585,316 +7679,246 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
-#, fuzzy
-#| msgid "Stock Item"
 msgid "Serialize Stock Item"
-msgstr "Voorraadartikel"
+msgstr ""
 
 #: templates/js/translated/stock.js:90
 msgid "Parent stock location"
 msgstr ""
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "Stock Location"
 msgid "New Stock Location"
-msgstr "Voorraadlocatie"
+msgstr ""
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Enter quantity for build output"
 msgid "Enter initial quantity for this stock item"
-msgstr "Voer hoeveelheid in voor build-output"
+msgstr ""
 
 #: templates/js/translated/stock.js:195
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr "Voer serienummers in voor build-outputs"
+msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Create new stock location"
 msgid "Created new stock item"
-msgstr "Maak nieuwe voorraadlocatie"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "All stock items"
 msgid "Created multiple stock items"
-msgstr "Alle voorraadartikelen"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -8041,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8089,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8129,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8149,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8404,10 +8428,8 @@ msgid "About InvenTree"
 msgstr ""
 
 #: templates/navbar_demo.html:5
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree demo mode"
-msgstr "Inventree Instantie Naam"
+msgstr ""
 
 #: templates/qr_code.html:11
 msgid "QR data not provided"
@@ -8589,38 +8611,3 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr ""
 
-#~ msgid "Build Order reference"
-#~ msgstr "Bouwopdracht referentie"
-
-#~ msgid "Order target date"
-#~ msgstr "Order streefdatum"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "Bevestig het ongedaan maken van de toewijzing van voorraad"
-
-#~ msgid "Build output stock status"
-#~ msgstr "Build output voorraad status"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "Bevestig onvolledigheid"
-
-#~ msgid "Confirm completion with incomplete stock allocation"
-#~ msgstr "Bevestig voltooiing met onvolledige voorraadtoewijzing"
-
-#~ msgid "Confirm build completion"
-#~ msgstr "Bevestig build voltooiing"
-
-#~ msgid "Admin view"
-#~ msgstr "Beheerder weergave"
-
-#~ msgid "Progress"
-#~ msgstr "Voortgang"
-
-#~ msgid "Location Details"
-#~ msgstr "Locatiegegevens"
-
-#~ msgid "Location Description"
-#~ msgstr "Locatieomschrijving"
-
-#~ msgid "Create new location"
-#~ msgstr "Maak nieuwe locatie"
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 5049e7f43c..2a8d5785ec 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Norwegian\n"
 "Language: no_NO\n"
@@ -132,7 +132,7 @@ msgstr "Kommentar til fil"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Bruker"
@@ -173,8 +173,9 @@ msgstr "Ugyldig valg"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Navn"
@@ -185,18 +186,19 @@ msgstr "Navn"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Beskrivelse"
 
@@ -216,83 +218,83 @@ msgstr "Nummer må være gyldig"
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Tysk"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Gresk"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Engelsk"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Spansk"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Fransk"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Hebraisk"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Italiensk"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Japansk"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Koreansk"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Nederlandsk"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Norsk"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polsk"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Russisk"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Svensk"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Thailandsk"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Tyrkisk"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Vietnamesisk"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Kinesisk"
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4212,38 +4320,28 @@ msgid "Category Actions"
 msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "Velg kategori"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Velg kategori"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Velg kategori"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Velg kategori"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Velg kategori"
+msgstr ""
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4258,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4344,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4417,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4425,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4628,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4641,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4661,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4701,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4735,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4805,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4827,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4847,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4870,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5036,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5088,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5106,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5373,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5407,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "No serial numbers found"
 msgid "Enter serial numbers for new items"
-msgstr "Ingen serienummer funnet"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5453,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5574,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5762,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5794,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6041,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6064,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6111,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6119,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6216,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Velg kategori"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6242,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6259,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Velg kategori"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6285,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6391,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6460,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Oppgi passord"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6516,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6569,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6744,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6940,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6973,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6999,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7011,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7147,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Nummer må være gyldig"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7177,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7403,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7479,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7923,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7971,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8011,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8031,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8468,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 6f34398227..5a2e275036 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Polish\n"
 "Language: pl_PL\n"
@@ -132,7 +132,7 @@ msgstr "Komentarz pliku"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Użytkownik"
@@ -173,8 +173,9 @@ msgstr "Błędny wybór"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Nazwa"
@@ -185,18 +186,19 @@ msgstr "Nazwa"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Opis"
 
@@ -216,83 +218,83 @@ msgstr "Numer musi być prawidłowy"
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Niemiecki"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Grecki"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Angielski"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Hiszpański"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Francuski"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Hebrajski"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Włoski"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Japoński"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Koreański"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Holenderski"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Norweski"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polski"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Rosyjski"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Szwedzki"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Tajski"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Turecki"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Wietnamski"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Chiński"
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr "Podziel element podrzędny"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Wyślij do klienta"
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Ilość"
@@ -621,8 +622,10 @@ msgstr "Zlecenie Budowy"
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr "Zlecenia budowy"
 
@@ -635,7 +638,7 @@ msgstr "Odwołanie do zamówienia wykonania"
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr "Referencja"
@@ -659,7 +662,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "Część"
 
@@ -796,16 +799,23 @@ msgstr "Link Zewnętrzny"
 msgid "Link to external URL"
 msgstr "Link do zewnętrznego adresu URL"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "Uwagi"
 
@@ -900,16 +910,12 @@ msgid "Output part does not match BuildOrder part"
 msgstr ""
 
 #: build/serializers.py:154
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output has already been completed"
-msgstr "Budowanie wyjścia jest już ukończone"
+msgstr ""
 
 #: build/serializers.py:158
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output is not fully allocated"
-msgstr "Budowanie wyjścia jest już ukończone"
+msgstr ""
 
 #: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
 #: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
@@ -918,17 +924,15 @@ msgstr "Budowanie wyjścia jest już ukończone"
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr "Lokalizacja"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Lokalizacja ukończonych części"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -941,10 +945,8 @@ msgid "Status"
 msgstr "Status"
 
 #: build/serializers.py:213
-#, fuzzy
-#| msgid "No build output specified"
 msgid "A list of build outputs must be provided"
-msgstr "Nie określono danych wyjściowych budowy"
+msgstr ""
 
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
@@ -952,10 +954,8 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Create Build Output"
 msgid "Build output"
-msgstr "Utwórz zlecenie budowy"
+msgstr ""
 
 #: build/serializers.py:278
 msgid "Build output must point to the same build"
@@ -992,10 +992,8 @@ msgid "Allocation items must be provided"
 msgstr ""
 
 #: build/tasks.py:92
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock required for build order"
-msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
+msgstr ""
 
 #: build/templates/build/build_base.html:39
 #: order/templates/order/order_base.html:28
@@ -1004,10 +1002,8 @@ msgid "Print actions"
 msgstr "Akcje drukowania"
 
 #: build/templates/build/build_base.html:43
-#, fuzzy
-#| msgid "Print Build Order"
 msgid "Print build order report"
-msgstr "Wydrukuj Numer Zlecenia Budowy"
+msgstr ""
 
 #: build/templates/build/build_base.html:50
 msgid "Build actions"
@@ -1079,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr "Zaległe"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr "Zakończone"
 
@@ -1184,16 +1180,14 @@ msgid "Destination location not specified"
 msgstr "Nie określono lokalizacji docelowej"
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
-#, fuzzy
-#| msgid "Allocated"
 msgid "Allocated Parts"
-msgstr "Przydzielono"
+msgstr ""
 
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr "Partia"
 
@@ -1212,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr "Budowa niezakończona"
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1232,7 +1226,7 @@ msgstr "Cofnij przydział zapasów"
 msgid "Allocate stock to build"
 msgstr "Przydziel zapasy do budowy"
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr "Przydziel zapasy"
 
@@ -1272,37 +1266,33 @@ msgid "Create new build output"
 msgstr ""
 
 #: build/templates/build/detail.html:232
-#, fuzzy
-#| msgid "Create Build Output"
 msgid "New Build Output"
-msgstr "Utwórz zlecenie budowy"
+msgstr ""
 
 #: build/templates/build/detail.html:246
-#, fuzzy
-#| msgid "Actions"
 msgid "Output Actions"
-msgstr "Akcje"
+msgstr ""
 
 #: build/templates/build/detail.html:250
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete selected items"
-msgstr "Ukończone elementy"
+msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete outputs"
-msgstr "Ukończone elementy"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "Załączniki"
 
@@ -1323,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr "Dodaj załącznik"
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr "Edytuj załącznik"
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr "Usuń załącznik"
 
@@ -1360,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr "Nowe zlecenie budowy"
 
@@ -1380,6 +1374,18 @@ msgstr "Pokaż widok kalendarza"
 msgid "Display list view"
 msgstr "Pokaż widok listy"
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr "Tworzenie zostało przerwane"
@@ -1510,10 +1516,8 @@ msgid "No group"
 msgstr ""
 
 #: common/models.py:601
-#, fuzzy
-#| msgid "Required"
 msgid "Restart required"
-msgstr "Wymagane"
+msgstr ""
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
@@ -1567,7 +1571,7 @@ msgstr "Pobierz z adresu URL"
 msgid "Allow download of remote images and files from external URL"
 msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr "Obsługa kodu kreskowego"
 
@@ -1633,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr "Szablon"
 
@@ -1641,9 +1645,9 @@ msgstr "Szablon"
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr "Złożenie"
 
@@ -1652,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr "Komponent"
 
@@ -1669,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr "Części są domyślnie z możliwością zakupu"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr "Możliwość sprzedaży"
 
@@ -1679,8 +1683,8 @@ msgstr "Części są domyślnie z możliwością sprzedaży"
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr "Możliwość śledzenia"
 
@@ -1763,16 +1767,12 @@ msgid "Format to display the part name"
 msgstr ""
 
 #: common/models.py:814
-#, fuzzy
-#| msgid "Test Reports"
 msgid "Enable Reports"
-msgstr "Raporty testów"
+msgstr ""
 
 #: common/models.py:815
-#, fuzzy
-#| msgid "Enable generation of test reports"
 msgid "Enable generation of reports"
-msgstr "Włącz generowanie raportów testów"
+msgstr ""
 
 #: common/models.py:821 templates/stats.html:25
 msgid "Debug Mode"
@@ -1907,10 +1907,8 @@ msgid "Enable SSO on the login pages"
 msgstr ""
 
 #: common/models.py:931
-#, fuzzy
-#| msgid "Required"
 msgid "Email required"
-msgstr "Wymagane"
+msgstr ""
 
 #: common/models.py:932
 msgid "Require user to supply mail on signup"
@@ -2125,10 +2123,8 @@ msgid "Display stock levels in search preview window"
 msgstr ""
 
 #: common/models.py:1139
-#, fuzzy
-#| msgid "New Manufacturer Part"
 msgid "Hide Inactive Parts"
-msgstr "Nowa część producenta"
+msgstr ""
 
 #: common/models.py:1140
 msgid "Hide inactive parts in search preview window"
@@ -2164,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr "Cena"
 
@@ -2172,19 +2168,21 @@ msgstr "Cena"
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr "Wyślij plik"
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2202,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2229,7 +2227,7 @@ msgid "Description of the company"
 msgstr "Opis firmy"
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr "Strona WWW"
 
@@ -2273,8 +2271,8 @@ msgstr "Punkt kontaktowy"
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr "Łącze"
 
@@ -2332,25 +2330,25 @@ msgstr "Wybierz część"
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr "Producent"
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr "Wybierz producenta"
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr "MPN"
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr "Numer producenta"
 
@@ -2374,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2385,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr "Jednostki"
 
@@ -2403,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr "Dostawca"
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr "Wybierz dostawcę"
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2451,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr "Opakowanie"
 
@@ -2477,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr "Firma"
 
@@ -2516,7 +2515,7 @@ msgstr "Telefon"
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr "Klient"
@@ -2526,7 +2525,9 @@ msgstr "Klient"
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr "Komponenty dostawcy"
 
@@ -2537,7 +2538,7 @@ msgstr "Utwórz nowego dostawcę części"
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr "Nowy dostawca części"
 
@@ -2545,8 +2546,8 @@ msgstr "Nowy dostawca części"
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr "Opcje"
 
@@ -2574,7 +2575,7 @@ msgstr "Części producenta"
 msgid "Create new manufacturer part"
 msgstr "Utwórz nową część producenta"
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr "Nowa część producenta"
 
@@ -2583,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr "Zapasy dostawcy"
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2603,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2633,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2661,12 +2667,12 @@ msgid "Order part"
 msgstr "Zamów część"
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr "Edytuj część producenta"
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr "Usuń cześć producenta"
 
@@ -2677,27 +2683,29 @@ msgstr "Część wewnętrzna"
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr "Dostawcy"
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr "Usuń"
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr "Parametry"
 
@@ -2713,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr "Dodaj parametr"
 
@@ -2725,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2749,10 +2773,8 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Create new Stock Location"
 msgid "Create new stock item"
-msgstr "Utwórz nową lokalizację magazynową"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2777,7 +2799,7 @@ msgstr "Informacja cenowa"
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2785,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr "Edytuj przedział cenowy"
 
@@ -2802,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr "Stan"
@@ -2816,13 +2841,25 @@ msgid "Orders"
 msgstr "Zamówienia"
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr "Cennik"
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr "Nowy dostawca"
@@ -2848,24 +2885,24 @@ msgstr "Firmy"
 msgid "New Company"
 msgstr "Nowa firma"
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr "Pobierz obraz"
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2922,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr "Filtry"
 
@@ -3217,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr "Jesteś pewien, że chcesz usunąć ten załącznik?"
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Purchase order status"
 msgid "Print purchase order report"
-msgstr "Status zamówienia zakupu"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3229,17 +3264,13 @@ msgstr "Eksportuj zamówienie do pliku"
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Barcode actions"
 msgid "Order actions"
-msgstr "Akcje kodów kreskowych"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
-#, fuzzy
-#| msgid "Ship order"
 msgid "Edit order"
-msgstr "Wyślij zamówienie"
+msgstr ""
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
@@ -3359,19 +3390,19 @@ msgstr "Wiersz"
 msgid "Select Supplier Part"
 msgstr "Wybierz dostawcę części"
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3432,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr "Szczegóły zamówienia"
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Szczegóły"
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr "Otrzymane elementy"
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3451,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr "Otrzymane elementy"
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3470,10 +3533,8 @@ msgid "Print sales order report"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:47
-#, fuzzy
-#| msgid "Print actions"
 msgid "Print packing list"
-msgstr "Akcje drukowania"
+msgstr ""
 
 #: order/templates/order/sales_order_base.html:66
 #: order/templates/order/sales_order_base.html:67 order/views.py:222
@@ -3744,23 +3805,19 @@ msgstr "potwierdź"
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr "Powiązane części"
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr "Wybierz kategorię części"
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3789,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr "Części"
 
@@ -3857,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr "Kategoria"
 
@@ -3866,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr "IPN"
 
@@ -3879,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr "Wersja"
 
@@ -3936,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr "Aktywny"
 
@@ -3986,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr "Nazwa testu"
@@ -4003,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr "Wymagane"
 
@@ -4012,7 +4072,7 @@ msgstr "Wymagane"
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -4020,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4082,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4116,10 +4176,10 @@ msgstr "Suma kontrolna"
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4127,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4152,16 +4212,12 @@ msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
 #: part/models.py:2860
-#, fuzzy
-#| msgid "Parent Build"
 msgid "Parent BOM item"
-msgstr "Budowa nadrzędna"
+msgstr ""
 
 #: part/models.py:2868
-#, fuzzy
-#| msgid "Sub part"
 msgid "Substitute part"
-msgstr "Podczęść"
+msgstr ""
 
 #: part/models.py:2879
 msgid "Part 1"
@@ -4180,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr ""
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "Low stock notification"
-msgstr "Potwierdź przydział zapasów"
+msgstr ""
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4204,17 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
-#, fuzzy
-#| msgid "Barcode actions"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
-msgstr "Akcje kodów kreskowych"
+msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Usuń element"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4224,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4262,50 +4316,36 @@ msgid "Subscribe to notifications for this category"
 msgstr ""
 
 #: part/templates/part/category.html:38
-#, fuzzy
-#| msgid "Category"
 msgid "Category Actions"
-msgstr "Kategoria"
+msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Set category"
 msgid "Edit category"
-msgstr "Ustaw kategorię"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Edit Part Category"
 msgid "Edit Category"
-msgstr "Edytuj kategorię części"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Set category"
 msgid "Delete category"
-msgstr "Ustaw kategorię"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Wybierz kategorię"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr "Stwórz nową kategorię komponentów"
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Set Category"
 msgid "New Category"
-msgstr "Ustaw kategorię"
+msgstr ""
 
 #: part/templates/part/category.html:67
-#, fuzzy
-#| msgid "Select part category"
 msgid "Top level part category"
-msgstr "Wybierz kategorię części"
+msgstr ""
 
 #: part/templates/part/category.html:79
 msgid "Category Path"
@@ -4316,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4402,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr "Duplikuj część"
 
@@ -4427,16 +4472,12 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Details"
 msgid "Part Details"
-msgstr "Szczegóły"
+msgstr ""
 
 #: part/templates/part/detail.html:66
-#, fuzzy
-#| msgid "Minimum Stock"
 msgid "Minimum stock level"
-msgstr "Minimalny stan magazynowy"
+msgstr ""
 
 #: part/templates/part/detail.html:97
 msgid "Latest Serial Number"
@@ -4479,7 +4520,7 @@ msgstr "Nowy wariant"
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4487,120 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr "Dodaj powiązane"
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr "Zestawienie materiałowe"
 
-#: part/templates/part/detail.html:371
-#, fuzzy
-#| msgid "Print actions"
+#: part/templates/part/detail.html:345
 msgid "Export actions"
-msgstr "Akcje drukowania"
+msgstr ""
 
-#: part/templates/part/detail.html:375
-#, fuzzy
-#| msgid "Export"
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
-msgstr "Eksportuj"
+msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
-#, fuzzy
-#| msgid "Upload File"
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
-msgstr "Wyślij plik"
+msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr "Kopiuj BOM"
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
-#, fuzzy
-#| msgid "Add Line Item"
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
-msgstr "Dodaj element zamówienia"
+msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr "Powiązane części"
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr "Dodaj powiązaną część"
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4698,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr "Część jest wirtualna (nie fizyczna)"
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr "Nieaktywny"
 
@@ -4711,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4731,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4771,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4805,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4875,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4897,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4917,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4940,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr "Dodaj powiązaną część"
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr "Edytuj kategorię części"
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5106,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr "Filtr części"
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5158,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5176,47 +5210,36 @@ msgstr ""
 msgid "Serial Number"
 msgstr "Numer Seryjny"
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr "Wynik"
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr "Data"
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr "Zaliczone"
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr "Niezaliczone"
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
-#, fuzzy
-#| msgid "Quantity Per"
 msgid "Quantity is required"
-msgstr "Ilość za"
+msgstr ""
 
 #: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
 #: stock/templates/stock/item_base.html:382
@@ -5445,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5462,32 +5485,25 @@ msgid "Test notes"
 msgstr ""
 
 #: stock/serializers.py:166
-#, fuzzy
-#| msgid "Source stock item"
 msgid "Purchase price of this stock item"
-msgstr "Lokalizacja magazynowania przedmiotu"
+msgstr ""
 
 #: stock/serializers.py:173
 msgid "Purchase currency of this stock item"
 msgstr ""
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of stock items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "Ilość przedmiotów do zbudowania"
+msgstr ""
 
 #: stock/serializers.py:302
-#, fuzzy, python-brace-format
-#| msgid "Allocation quantity cannot exceed stock quantity"
+#, python-brace-format
 msgid "Quantity must not exceed available stock quantity ({q})"
-msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
+msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "No serial numbers found"
 msgid "Enter serial numbers for new items"
-msgstr "Nie znaleziono numerów seryjnych"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5498,10 +5514,8 @@ msgid "Optional note field"
 msgstr ""
 
 #: stock/serializers.py:339
-#, fuzzy
-#| msgid "Serial numbers already exist"
 msgid "Serial numbers cannot be assigned to this part"
-msgstr "Numer seryjny już istnieje"
+msgstr ""
 
 #: stock/serializers.py:557
 msgid "StockItem primary key value"
@@ -5532,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5653,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr "Termin minął"
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5832,10 +5847,8 @@ msgid "New Location"
 msgstr "Nowa lokalizacja"
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "Top level stock location"
-msgstr "Potwierdź przydział zapasów"
+msgstr ""
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5843,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5875,6 +5881,18 @@ msgstr "Czy na pewno chcesz skasować tą lokację?"
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6018,16 +6036,12 @@ msgid "Index"
 msgstr "Indeks"
 
 #: templates/InvenTree/index.html:88
-#, fuzzy
-#| msgid "Supplied Parts"
 msgid "Subscribed Parts"
-msgstr "Dostarczone części"
+msgstr ""
 
 #: templates/InvenTree/index.html:98
-#, fuzzy
-#| msgid "Set Category"
 msgid "Subscribed Categories"
-msgstr "Ustaw kategorię"
+msgstr ""
 
 #: templates/InvenTree/index.html:108
 msgid "Latest Parts"
@@ -6126,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6149,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6171,16 +6186,12 @@ msgid "Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit location"
 msgid "Edit Global Setting"
-msgstr "Edytuj lokację"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit User Information"
 msgid "Edit User Setting"
-msgstr "Edytuj informacje użytkownika"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6200,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6208,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6273,22 +6333,16 @@ msgid "You currently do not have any email address set up. You should really add
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:101
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Add Email Address"
-msgstr "Kontaktowy adres e-mail"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:111
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Enter e-mail address"
-msgstr "Kontaktowy adres e-mail"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:113
-#, fuzzy
-#| msgid "Email"
 msgid "Add Email"
-msgstr "Adres E-Mail"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:123
 msgid "Social Accounts"
@@ -6311,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select manufacturer"
 msgid "Select language"
-msgstr "Wybierz producenta"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6337,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6354,21 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-#, fuzzy
-#| msgid "Display list view"
-msgid "Display Settings"
-msgstr "Pokaż widok listy"
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select part"
 msgid "Select theme"
-msgstr "Wybierz część"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6382,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6468,10 +6508,8 @@ msgstr ""
 
 #: templates/account/email_confirm.html:6
 #: templates/account/email_confirm.html:10
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Confirm Email Address"
-msgstr "Kontaktowy adres e-mail"
+msgstr ""
 
 #: templates/account/email_confirm.html:16
 #, python-format
@@ -6490,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6508,10 +6544,8 @@ msgid "Forgot Password?"
 msgstr ""
 
 #: templates/account/login.html:47
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree demo instance"
-msgstr "Nazwa instancji InvenTree"
+msgstr ""
 
 #: templates/account/login.html:47
 msgid "Click here for login details"
@@ -6561,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Wprowadź hasło"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6600,10 +6632,8 @@ msgid "Contact your system administrator for further information"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:7
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock is required for the following build order"
-msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:8
 #, python-format
@@ -6619,15 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Build Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Ilość do stworzenia"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr "Dostępne"
@@ -6638,10 +6666,8 @@ msgid "You are receiving this email because you are subscribed to notifications
 msgstr ""
 
 #: templates/email/email.html:35
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree version"
-msgstr "Nazwa instancji InvenTree"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:7
 #, python-format
@@ -6653,16 +6679,12 @@ msgid "Click on the following link to view this part"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:17
-#, fuzzy
-#| msgid "Part Stock"
 msgid "Total Stock"
-msgstr "Zapasy części"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Minimum Quantity"
-msgstr "Ilość do stworzenia"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6680,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6852,107 +6953,95 @@ msgid "Barcode does not match a valid location"
 msgstr ""
 
 #: templates/js/translated/bom.js:184
-#, fuzzy
-#| msgid "Remove part"
 msgid "Remove substitute part"
-msgstr "Usuń część"
+msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
-#, fuzzy
-#| msgid "Are you sure you wish to cancel this build?"
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
-msgstr "Czy na pewno przerwać tę budowę?"
+msgstr ""
 
-#: templates/js/translated/bom.js:243
-#, fuzzy
-#| msgid "Remove part"
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
-msgstr "Usuń część"
+msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
-#, fuzzy
-#| msgid "Available"
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
-msgstr "Dostępne"
+msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr "Akcje"
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
-#, fuzzy
-#| msgid "Edit manufacturer part"
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
-msgstr "Edytuj część producenta"
+msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
-#, fuzzy
-#| msgid "Are you sure you want to delete this stock item?"
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
-msgstr "Czy na pewno chcesz usunąć tą część?"
+msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6981,22 +7070,16 @@ msgid "Delete build output"
 msgstr ""
 
 #: templates/js/translated/build.js:184
-#, fuzzy
-#| msgid "Are you sure you wish to unallocate all stock for this build?"
 msgid "Are you sure you wish to unallocate stock items from this build?"
-msgstr "Czy na pewno chcesz cofnąć przydział wszystkich zapasów dla tej budowy?"
+msgstr ""
 
 #: templates/js/translated/build.js:202
-#, fuzzy
-#| msgid "Unallocate Stock"
 msgid "Unallocate Stock Items"
-msgstr "Cofnij przydział zapasów"
+msgstr ""
 
 #: templates/js/translated/build.js:220
-#, fuzzy
-#| msgid "Create Build Output"
 msgid "Select Build Outputs"
-msgstr "Utwórz zlecenie budowy"
+msgstr ""
 
 #: templates/js/translated/build.js:221
 msgid "At least one build output must be selected"
@@ -7007,10 +7090,8 @@ msgid "Output"
 msgstr ""
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Create Build Output"
 msgid "Complete Build Outputs"
-msgstr "Utwórz zlecenie budowy"
+msgstr ""
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -7021,10 +7102,8 @@ msgid "Location not specified"
 msgstr ""
 
 #: templates/js/translated/build.js:603
-#, fuzzy
-#| msgid "No build output specified"
 msgid "No active build outputs found"
-msgstr "Nie określono danych wyjściowych budowy"
+msgstr ""
 
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
@@ -7073,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7106,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7132,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr "Dodaj część producenta"
 
@@ -7144,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr "Edytuj firmę"
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr "Dodaj nową firmę"
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7280,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Numer musi być prawidłowy"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7310,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7536,15 +7603,13 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr "Cena jednostkowa"
 
 #: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
-#, fuzzy
-#| msgid "Sale Price"
 msgid "Total Price"
-msgstr "Cena sprzedaży"
+msgstr ""
 
 #: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
 msgid "Edit line item"
@@ -7614,326 +7679,246 @@ msgstr "Zaktualizuj cenę jednostkową"
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
-#, fuzzy
-#| msgid "Part List"
+#: templates/js/translated/part.js:335
 msgid "Part edited"
-msgstr "Lista części"
+msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
-#, fuzzy
-#| msgid "Sub part"
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
-msgstr "Podczęść"
+msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
-#, fuzzy
-#| msgid "Display list view"
 msgid "Display as list"
-msgstr "Pokaż widok listy"
+msgstr ""
 
-#: templates/js/translated/part.js:1044
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
-msgstr "Pokaż widok listy"
+msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
-msgstr "Pokaż widok listy"
+msgstr ""
 
-#: templates/js/translated/part.js:1283
-#, fuzzy
-#| msgid "Set category"
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
-msgstr "Ustaw kategorię"
+msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr "Cena jednostkowa"
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
-#, fuzzy
-#| msgid "Stock Item"
 msgid "Serialize Stock Item"
-msgstr "Element magazynowy"
+msgstr ""
 
 #: templates/js/translated/stock.js:90
 msgid "Parent stock location"
 msgstr ""
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "New Location"
 msgid "New Stock Location"
-msgstr "Nowa lokalizacja"
+msgstr ""
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Enter quantity of stock items"
 msgid "Enter initial quantity for this stock item"
-msgstr "Wprowadź ilość produktów magazynowych"
+msgstr ""
 
 #: templates/js/translated/stock.js:195
 msgid "Enter serial numbers for new stock (or leave blank)"
 msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Create new Stock Location"
 msgid "Created new stock item"
-msgstr "Utwórz nową lokalizację magazynową"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Enter quantity of stock items"
 msgid "Created multiple stock items"
-msgstr "Wprowadź ilość produktów magazynowych"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -8080,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8128,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Szczegóły"
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8168,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8188,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8443,10 +8428,8 @@ msgid "About InvenTree"
 msgstr ""
 
 #: templates/navbar_demo.html:5
-#, fuzzy
-#| msgid "InvenTree Instance Name"
 msgid "InvenTree demo mode"
-msgstr "Nazwa instancji InvenTree"
+msgstr ""
 
 #: templates/qr_code.html:11
 msgid "QR data not provided"
@@ -8628,68 +8611,3 @@ msgstr "Uprawnienie do edycji przedmiotów"
 msgid "Permission to delete items"
 msgstr "Uprawnienie do usuwania przedmiotów"
 
-#~ msgid "Build Order reference"
-#~ msgstr "Numer Zlecenia Budowy"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "Potwierdź brak alokacji zapasów"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "Potwierdź nieukończone"
-
-#~ msgid "Admin view"
-#~ msgstr "Widok administratora"
-
-#~ msgid "Progress"
-#~ msgstr "Postęp"
-
-#~ msgid "Create New Output"
-#~ msgstr "Utwórz nowe wyjście"
-
-#~ msgid "Build Order Details"
-#~ msgstr "Szczegóły zlecenia budowy"
-
-#~ msgid "Child Builds"
-#~ msgstr "Budowy podrzędne"
-
-#~ msgid "Build Order Notes"
-#~ msgstr "Notatki zlecenia budowy"
-
-#~ msgid "Default"
-#~ msgstr "Domyślny"
-
-#~ msgid "Current value"
-#~ msgstr "Aktualna wartość"
-
-#~ msgid "Change Setting"
-#~ msgstr "Zmień ustawienie"
-
-#~ msgid "Manufacturer Part Details"
-#~ msgstr "Szczegóły części producenta"
-
-#~ msgid "Purchase Order Details"
-#~ msgstr "Szczegóły zamówienia"
-
-#~ msgid "Import BOM data"
-#~ msgstr "Importuj dane BOM"
-
-#~ msgid "Copy BOM from parent part"
-#~ msgstr "Kopiuj BOM z części nadrzędnej"
-
-#~ msgid "Finish Editing"
-#~ msgstr "Zakończ edycję"
-
-#~ msgid "All parts"
-#~ msgstr "Wszystkie części"
-
-#~ msgid "Used In"
-#~ msgstr "Użyte w"
-
-#~ msgid "Prices"
-#~ msgstr "Ceny"
-
-#~ msgid "Save"
-#~ msgstr "Zapisz"
-
-#~ msgid "History"
-#~ msgstr "Historia"
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 5162bf6bc2..2b69dcc2ba 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -1,22 +1,21 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
+"Last-Translator: \n"
+"Language-Team: Portuguese\n"
+"Language: pt_PT\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: pt-PT\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
 
 #: InvenTree/api.py:64
 msgid "API endpoint not found"
@@ -133,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -174,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -186,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -217,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -418,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -548,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -568,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -622,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -636,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -660,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -670,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -797,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -915,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1066,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1177,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1197,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1217,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1276,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1300,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1337,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1357,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1542,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1608,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1616,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1627,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1644,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1654,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2131,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2139,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2169,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2196,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2240,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2299,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2341,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2352,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2370,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2418,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2444,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2483,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2493,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2504,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2512,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2541,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2550,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2570,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2600,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2628,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2644,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2680,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2692,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2742,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2750,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2767,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2781,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2813,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2887,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3318,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3391,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3410,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3701,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3746,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3814,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3823,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3836,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3893,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3943,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3960,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3969,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3977,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4039,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4073,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4084,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4155,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4171,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4249,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4335,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4408,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4416,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4619,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4632,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4652,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4692,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4726,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4796,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4818,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4838,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4861,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5027,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5079,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5097,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5364,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5442,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5563,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5751,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5783,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6030,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6053,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6100,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6108,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6229,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6246,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6270,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6376,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6499,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6552,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6727,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6923,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6956,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6982,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6994,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7158,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7384,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7460,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7904,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7952,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7992,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8012,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8449,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 3edb9e42bd..9baaa8a060 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Russian\n"
 "Language: ru_RU\n"
@@ -70,15 +70,15 @@ msgstr "Выбрать категорию"
 
 #: InvenTree/forms.py:230
 msgid "Email (again)"
-msgstr ""
+msgstr "Email (еще раз)"
 
 #: InvenTree/forms.py:234
 msgid "Email address confirmation"
-msgstr ""
+msgstr "Подтверждение адреса электронной почты"
 
 #: InvenTree/forms.py:254
 msgid "You must type the same email each time."
-msgstr ""
+msgstr "Вы должны вводить один и тот же адрес электронной почты."
 
 #: InvenTree/helpers.py:430
 #, python-brace-format
@@ -132,7 +132,7 @@ msgstr "Комментарий к файлу"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Пользователь"
@@ -143,11 +143,11 @@ msgstr "дата загрузки"
 
 #: InvenTree/models.py:142
 msgid "Filename must not be empty"
-msgstr ""
+msgstr "Имя файла не должно быть пустым"
 
 #: InvenTree/models.py:165
 msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Неверная директория вложений"
 
 #: InvenTree/models.py:175
 #, python-brace-format
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Название"
@@ -185,18 +186,19 @@ msgstr "Название"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Описание"
 
@@ -214,85 +216,85 @@ msgstr ""
 
 #: InvenTree/serializers.py:251
 msgid "Filename"
-msgstr ""
+msgstr "Имя файла"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Немецкий"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Греческий"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Английский"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Испанский"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Французский"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Иврит"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Итальянский"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Японский"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Корейский"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Голландский"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Норвежский"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Польский"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Русский"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Шведский"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Тайский"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Турецкий"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Вьетнамский"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Китайский"
 
@@ -347,7 +349,7 @@ msgstr "Да"
 
 #: InvenTree/status_codes.py:184
 msgid "Attention needed"
-msgstr "Требуется внимание"
+msgstr "Требует внимания"
 
 #: InvenTree/status_codes.py:185
 msgid "Damaged"
@@ -417,7 +419,7 @@ msgstr "Отделить от родительского элемента"
 msgid "Split child item"
 msgstr "Разбить дочерний элемент"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Отправлено клиенту"
 
@@ -547,19 +549,18 @@ msgstr "Штрих-код, связанный с инвентарем"
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr "Штрих-код, связанный с инвентарем"
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Количество"
@@ -621,8 +622,10 @@ msgstr "Порядок сборки"
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr "Порядок сборки"
 
@@ -635,7 +638,7 @@ msgstr "Ссылка на заказ"
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "Детали"
 
@@ -796,16 +799,23 @@ msgstr "Внешняя ссылка"
 msgid "Link to external URL"
 msgstr "Ссылка на внешний URL"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "Заметки"
 
@@ -892,10 +902,8 @@ msgid "Build Output"
 msgstr ""
 
 #: build/serializers.py:146
-#, fuzzy
-#| msgid "Build output stock status"
 msgid "Build output does not match the parent build"
-msgstr "Создать статус склада вывода"
+msgstr ""
 
 #: build/serializers.py:150
 msgid "Output part does not match BuildOrder part"
@@ -916,17 +924,15 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr "Расположение"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Расположение укомплектованных частей"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -948,16 +954,12 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build Notes"
 msgid "Build output"
-msgstr "Заметки сборки"
+msgstr ""
 
 #: build/serializers.py:278
-#, fuzzy
-#| msgid "Build output stock status"
 msgid "Build output must point to the same build"
-msgstr "Создать статус склада вывода"
+msgstr ""
 
 #: build/serializers.py:319
 msgid "bom_item.part must point to the same part as the build order"
@@ -1073,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr "Просрочено"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1184,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr "Партия"
 
@@ -1204,7 +1206,7 @@ msgstr "Нет конечной даты"
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1224,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1276,19 +1278,21 @@ msgid "Complete selected items"
 msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Complete Build"
 msgid "Complete outputs"
-msgstr "Завершить сборку"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "Приложения"
 
@@ -1309,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1346,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1366,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1551,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1617,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1625,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1636,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1653,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1663,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2140,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2148,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2178,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2205,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2249,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2308,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2350,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2361,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2379,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2427,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2453,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2492,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2502,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2513,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2521,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2550,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2559,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2579,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2609,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2637,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2653,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2689,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2701,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2725,10 +2773,8 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Create new stock item"
-msgstr "Отредактированный товар"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2753,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2761,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2778,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2792,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2824,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2898,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3193,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Received against purchase order"
 msgid "Print purchase order report"
-msgstr "Получено по заказу на покупку"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3205,10 +3264,8 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Order Parts"
 msgid "Order actions"
-msgstr "Заказать детали"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
@@ -3333,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3406,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3425,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3716,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3761,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3829,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3838,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3851,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3908,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3958,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3975,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3984,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3992,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4054,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4088,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4099,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4148,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr ""
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "Low stock notification"
-msgstr "Подтвердите выделение запасов"
+msgstr ""
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4172,15 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Удалить элемент"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4190,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4232,38 +4320,28 @@ msgid "Category Actions"
 msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4278,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4364,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4437,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4445,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4648,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4661,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4681,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4721,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4755,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4825,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4847,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4867,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4890,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5056,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5108,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5126,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5393,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5418,10 +5493,8 @@ msgid "Purchase currency of this stock item"
 msgstr ""
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "Количество элементов для сборки"
+msgstr ""
 
 #: stock/serializers.py:302
 #, python-brace-format
@@ -5429,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new items"
-msgstr "Введите серийные номера для результатов сборки"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5475,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5596,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5775,10 +5847,8 @@ msgid "New Location"
 msgstr ""
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "Top level stock location"
-msgstr "Подтвердите выделение запасов"
+msgstr ""
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5786,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5818,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6065,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6088,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6114,10 +6190,8 @@ msgid "Edit Global Setting"
 msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit User Information"
 msgid "Edit User Setting"
-msgstr "Редактировать информацию о пользователе"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6137,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6145,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6242,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6268,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6285,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Выбрать категорию"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6311,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6417,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6486,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Введите пароль"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6542,15 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Количество"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6578,10 +6683,8 @@ msgid "Total Stock"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Quantity"
 msgid "Minimum Quantity"
-msgstr "Количество"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6599,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6774,96 +6956,94 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Отделить от родительского элемента"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -6910,10 +7090,8 @@ msgid "Output"
 msgstr ""
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Complete Build"
 msgid "Complete Build Outputs"
-msgstr "Завершить сборку"
+msgstr ""
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -6974,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7007,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7033,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7045,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7209,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7435,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7511,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7791,34 +7901,24 @@ msgid "Parent stock location"
 msgstr ""
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "Confirm stock allocation"
 msgid "New Stock Location"
-msgstr "Подтвердите выделение запасов"
+msgstr ""
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Enter quantity for build output"
 msgid "Enter initial quantity for this stock item"
-msgstr "Введите количество для вывода сборки"
+msgstr ""
 
 #: templates/js/translated/stock.js:195
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr "Введите серийные номера для результатов сборки"
+msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created new stock item"
-msgstr "Отредактированный товар"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created multiple stock items"
-msgstr "Отредактированный товар"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -7965,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8013,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8053,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8073,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8511,20 +8611,3 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr ""
 
-#~ msgid "Build Order reference"
-#~ msgstr "Ссылка на заказ"
-
-#~ msgid "Order target date"
-#~ msgstr "Срок выполнения заказа"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "Подтвердите снятие со склада"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "Подтвердите незавершенность"
-
-#~ msgid "Confirm completion with incomplete stock allocation"
-#~ msgstr "Подтвердите завершение с неполным выделением запасов"
-
-#~ msgid "Confirm build completion"
-#~ msgstr "Подтвердите завершение сборки"
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 09600887b0..5eccf5a18c 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Swedish\n"
 "Language: sv_SE\n"
@@ -132,7 +132,7 @@ msgstr "Fil kommentar"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Användare"
@@ -173,8 +173,9 @@ msgstr "Ogiltigt val"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Namn"
@@ -185,18 +186,19 @@ msgstr "Namn"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Beskrivning"
 
@@ -216,83 +218,83 @@ msgstr "Måste vara ett giltigt nummer"
 msgid "Filename"
 msgstr "Filnamn"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Tyska"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Grekiska"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "Engelska"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "Spanska"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Franska"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "Hebreiska"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "Italienska"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Japanska"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Koreanska"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Nederländska"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Norska"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polska"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Ryska"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "Svenska"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Thailändska"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Turkiska"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "Vietnamesiska"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Kinesiska"
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1268,19 +1278,21 @@ msgid "Complete selected items"
 msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Complete"
 msgid "Complete outputs"
-msgstr "Slutför"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1301,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1338,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1358,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1543,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1609,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1617,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1628,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1645,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1655,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2132,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2140,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2170,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2197,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2241,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2300,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2342,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2353,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2371,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2419,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2445,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2484,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2494,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2505,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2513,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2542,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2551,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2571,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2601,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2629,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2645,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2681,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2693,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2743,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2751,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2768,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2782,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2814,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2888,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3319,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3392,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3411,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3702,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3747,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3815,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3824,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3837,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3894,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3944,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3961,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3970,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3978,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4040,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4074,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4085,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4156,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4172,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4214,38 +4320,28 @@ msgid "Category Actions"
 msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit category"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Select Category"
 msgid "Edit Category"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete category"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Select Category"
 msgid "New Category"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: part/templates/part/category.html:67
 msgid "Top level part category"
@@ -4260,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4346,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4419,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4427,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4630,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4643,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4663,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4703,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4737,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4807,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4829,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4849,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4872,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5038,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5090,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5108,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5375,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5409,10 +5502,8 @@ msgid "Quantity must not exceed available stock quantity ({q})"
 msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "No serial numbers found"
 msgid "Enter serial numbers for new items"
-msgstr "Inga serienummer hittades"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5455,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5576,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5764,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5796,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6043,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6066,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6113,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6121,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6218,10 +6365,8 @@ msgid "Language Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select language"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6244,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6261,19 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Select Category"
 msgid "Select theme"
-msgstr "Välj Kategori"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6287,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6393,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6462,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Ange lösenord"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6518,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6571,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6746,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6942,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6975,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7001,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7013,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7149,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Måste vara ett giltigt nummer"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7179,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7405,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7481,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7925,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7973,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8013,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8033,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8470,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 6d249907a5..e6326f8035 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Thai\n"
 "Language: th_TH\n"
@@ -132,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -185,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -216,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4248,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4334,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4415,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4618,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4631,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4651,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4691,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4725,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4795,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4817,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4837,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4860,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5026,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5078,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5096,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5363,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5441,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5562,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5750,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5782,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6029,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6052,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6099,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6107,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6228,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6245,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6269,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6375,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6498,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6551,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6726,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6922,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6955,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6981,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6993,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7157,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7383,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7459,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7903,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7951,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7991,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8011,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8448,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 492602cb63..f6a1da6da8 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Turkish\n"
 "Language: tr_TR\n"
@@ -132,7 +132,7 @@ msgstr "Dosya yorumu"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "Kullanıcı"
@@ -173,8 +173,9 @@ msgstr "Geçersiz seçim"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "Adı"
@@ -185,18 +186,19 @@ msgstr "Adı"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "Açıklama"
 
@@ -216,83 +218,83 @@ msgstr "Geçerli bir numara olmalı"
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "Almanca"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "Yunanca"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "İngilizce"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "İspanyolca"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "Fransızca"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "İbranice"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "İtalyanca"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "Japonca"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "Korece"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "Flemenkçe"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "Norveççe"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "Polonyaca"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "Rusça"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "İsveççe"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "Tay dili"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "Türkçe"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "Çince"
 
@@ -417,7 +419,7 @@ msgstr "Üst ögeden ayır"
 msgid "Split child item"
 msgstr "Alt ögeyi ayır"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "Müşteriye gönderildi"
 
@@ -547,19 +549,18 @@ msgstr "Barkod başka bir stok kalemiyle ilişkili"
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr "Barkod başka bir stok kalemiyle ilişkili"
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "Miktar"
@@ -621,8 +622,10 @@ msgstr "Yapım İşi Emri"
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr "Yapım İşi Emirleri"
 
@@ -635,7 +638,7 @@ msgstr "Yapım İşi Emri Referansı"
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr "Referans"
@@ -659,7 +662,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "Parça"
 
@@ -796,16 +799,23 @@ msgstr "Harici Bağlantı"
 msgid "Link to external URL"
 msgstr "Harici URL'ye bağlantı"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "Notlar"
 
@@ -892,28 +902,20 @@ msgid "Build Output"
 msgstr ""
 
 #: build/serializers.py:146
-#, fuzzy
-#| msgid "Build output does not match build"
 msgid "Build output does not match the parent build"
-msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor"
+msgstr ""
 
 #: build/serializers.py:150
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Output part does not match BuildOrder part"
-msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
+msgstr ""
 
 #: build/serializers.py:154
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output has already been completed"
-msgstr "Yapım işi çıktısı zaten tamamlanmış"
+msgstr ""
 
 #: build/serializers.py:158
-#, fuzzy
-#| msgid "Required stock has not been fully allocated"
 msgid "This build output is not fully allocated"
-msgstr "Gerekli stok tamamen tahsis edilemedi"
+msgstr ""
 
 #: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
 #: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
@@ -922,17 +924,15 @@ msgstr "Gerekli stok tamamen tahsis edilemedi"
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr "Konum"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "Tamamlanmış parçaların konumu"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -945,10 +945,8 @@ msgid "Status"
 msgstr "Durum"
 
 #: build/serializers.py:213
-#, fuzzy
-#| msgid "Build output must be specified"
 msgid "A list of build outputs must be provided"
-msgstr "Yapım işi çıktısı belirtilmeli"
+msgstr ""
 
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
@@ -956,16 +954,12 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build Outputs"
 msgid "Build output"
-msgstr "Yapım İşi Çıktıları"
+msgstr ""
 
 #: build/serializers.py:278
-#, fuzzy
-#| msgid "Build output does not match build"
 msgid "Build output must point to the same build"
-msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor"
+msgstr ""
 
 #: build/serializers.py:319
 msgid "bom_item.part must point to the same part as the build order"
@@ -998,10 +992,8 @@ msgid "Allocation items must be provided"
 msgstr ""
 
 #: build/tasks.py:92
-#, fuzzy
-#| msgid "Required for Build Orders"
 msgid "Stock required for build order"
-msgstr "Yapım İşi Emirleri için Gerekli"
+msgstr ""
 
 #: build/templates/build/build_base.html:39
 #: order/templates/order/order_base.html:28
@@ -1010,10 +1002,8 @@ msgid "Print actions"
 msgstr "Yazdırma işlemleri"
 
 #: build/templates/build/build_base.html:43
-#, fuzzy
-#| msgid "Print Build Order"
 msgid "Print build order report"
-msgstr "Yapım İşi Emrini Yazdır"
+msgstr ""
 
 #: build/templates/build/build_base.html:50
 msgid "Build actions"
@@ -1085,16 +1075,16 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor"
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr "Vadesi geçmiş"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr "Tamamlandı"
 
@@ -1190,16 +1180,14 @@ msgid "Destination location not specified"
 msgstr "Hedef konumu belirtilmedi"
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
-#, fuzzy
-#| msgid "Allocate Stock"
 msgid "Allocated Parts"
-msgstr "Stok Tahsis Et"
+msgstr ""
 
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr "Toplu"
 
@@ -1218,7 +1206,7 @@ msgstr "Hedef tarih ayarlanmadı"
 msgid "Build not complete"
 msgstr "Yapım İşi tamamlanmadı"
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr "Alt Yapım İşi Emrileri"
 
@@ -1238,7 +1226,7 @@ msgstr "Stok Tahsisini Kaldır"
 msgid "Allocate stock to build"
 msgstr "Yapım işi için stok tahsis et"
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr "Stok Tahsis Et"
 
@@ -1278,37 +1266,33 @@ msgid "Create new build output"
 msgstr "Yeni yapım işi çıktısı oluştur"
 
 #: build/templates/build/detail.html:232
-#, fuzzy
-#| msgid "Build Outputs"
 msgid "New Build Output"
-msgstr "Yapım İşi Çıktıları"
+msgstr ""
 
 #: build/templates/build/detail.html:246
-#, fuzzy
-#| msgid "Actions"
 msgid "Output Actions"
-msgstr "İşlemler"
+msgstr ""
 
 #: build/templates/build/detail.html:250
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete selected items"
-msgstr "Tamamlanmış ögeler"
+msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Incomplete Outputs"
 msgid "Complete outputs"
-msgstr "Tamamlanmamış Çıktılar"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr "Tamamlanmış Yapım İşi Çıktıları"
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "Ekler"
 
@@ -1329,32 +1313,36 @@ msgid "Edit Notes"
 msgstr "Notları Düzenle"
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr "Dosya Ekle"
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr "Ek Düzenle"
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr "Silme İşlemini Onayla"
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr "Eki Sil"
 
@@ -1366,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr "Yeni Yapım İşi Emri"
 
@@ -1386,6 +1374,18 @@ msgstr "Takvim görünümünü görüntüle"
 msgid "Display list view"
 msgstr "Liste görünümünü görüntüle"
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr "Yapım işi iptal edildi"
@@ -1496,10 +1496,8 @@ msgid "Must be an integer value"
 msgstr "Bir tam sayı olmalı"
 
 #: common/models.py:382
-#, fuzzy
-#| msgid "Barcode does not match a valid location"
 msgid "Chosen value is not a valid option"
-msgstr "Barkod geçerli bir konumla eşleşmiyor"
+msgstr ""
 
 #: common/models.py:405
 msgid "Value must be a boolean value"
@@ -1518,10 +1516,8 @@ msgid "No group"
 msgstr ""
 
 #: common/models.py:601
-#, fuzzy
-#| msgid "Required"
 msgid "Restart required"
-msgstr "Gerekli"
+msgstr ""
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
@@ -1575,7 +1571,7 @@ msgstr "URL'den indir"
 msgid "Allow download of remote images and files from external URL"
 msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr "Barkod Desteği"
 
@@ -1641,7 +1637,7 @@ msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr "Şablon"
 
@@ -1649,9 +1645,9 @@ msgstr "Şablon"
 msgid "Parts are templates by default"
 msgstr "Parçaları varsayılan olan şablondur"
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr "Montaj"
 
@@ -1660,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr "Bileşen"
 
@@ -1677,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr "Parçalar varsayılan olarak satın alınabilir"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr "Satılabilir"
 
@@ -1687,8 +1683,8 @@ msgstr "Parçalar varsayılan olarak satılabilir"
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr "Takip Edilebilir"
 
@@ -1771,10 +1767,8 @@ msgid "Format to display the part name"
 msgstr ""
 
 #: common/models.py:814
-#, fuzzy
-#| msgid "Test Reports"
 msgid "Enable Reports"
-msgstr "Test Raporları"
+msgstr ""
 
 #: common/models.py:815
 msgid "Enable generation of reports"
@@ -1913,10 +1907,8 @@ msgid "Enable SSO on the login pages"
 msgstr ""
 
 #: common/models.py:931
-#, fuzzy
-#| msgid "Required"
 msgid "Email required"
-msgstr "Gerekli"
+msgstr ""
 
 #: common/models.py:932
 msgid "Require user to supply mail on signup"
@@ -1955,20 +1947,16 @@ msgid "Group to which new users are assigned on registration"
 msgstr ""
 
 #: common/models.py:1001
-#, fuzzy
-#| msgid "Show related parts"
 msgid "Show subscribed parts"
-msgstr "İlgili parçaları göster"
+msgstr ""
 
 #: common/models.py:1002
 msgid "Show subscribed parts on the homepage"
 msgstr ""
 
 #: common/models.py:1007
-#, fuzzy
-#| msgid "Subcategories"
 msgid "Show subscribed categories"
-msgstr "Alt kategoriler"
+msgstr ""
 
 #: common/models.py:1008
 msgid "Show subscribed part categories on the homepage"
@@ -2127,10 +2115,8 @@ msgid "Number of results to show in search preview window"
 msgstr ""
 
 #: common/models.py:1132
-#, fuzzy
-#| msgid "Low Stock"
 msgid "Search Show Stock"
-msgstr "Düşük Stok"
+msgstr ""
 
 #: common/models.py:1133
 msgid "Display stock levels in search preview window"
@@ -2174,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr "Fiyat"
 
@@ -2182,19 +2168,21 @@ msgstr "Fiyat"
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr "Dosya Yükle"
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr "Alanları Eşleştir"
 
@@ -2212,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2239,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2283,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr "Bağlantı"
 
@@ -2342,25 +2330,25 @@ msgstr "Parça seçin"
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr "Üretici"
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr "Üretici seçin"
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr "ÜPN"
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr "Üretici Parça Numarası"
 
@@ -2384,9 +2372,9 @@ msgid "Parameter name"
 msgstr "Parametre adı"
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr "Değer"
 
@@ -2395,8 +2383,9 @@ msgid "Parameter value"
 msgstr "Parametre değeri"
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2413,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr "Tedarikçi"
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr "Tedarikçi seçin"
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2461,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr "Paketleme"
 
@@ -2487,7 +2476,7 @@ msgstr "Para Birimi Kodu"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2526,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr "Müşteri"
@@ -2536,7 +2525,9 @@ msgstr "Müşteri"
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr "Tedarikçi Parçaları"
 
@@ -2547,7 +2538,7 @@ msgstr "Yeni tedarikçi parçası oluştur"
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr "Yeni Tedarikçi Parçası"
 
@@ -2555,8 +2546,8 @@ msgstr "Yeni Tedarikçi Parçası"
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2584,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2593,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr "Tedarikçi Stoku"
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr "Satın Alma Emirleri"
@@ -2613,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr "Yeni Satın Alma Emri"
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr "Satış Emirleri"
@@ -2643,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2671,12 +2667,12 @@ msgid "Order part"
 msgstr "Parça siparişi"
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2687,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr "Tedarikçi parçalarını sil"
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2723,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2735,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr "Tedarikçi Parçası"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr "Tedarikçi parçasını düzenle"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr "Tedarikçi parçasını sil"
 
@@ -2759,10 +2773,8 @@ msgstr "Tedarikçi Parça Stoku"
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Create new stock location"
 msgid "Create new stock item"
-msgstr "Yeni stok konumu oluştur"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2787,7 +2799,7 @@ msgstr "Fiyat Bilgisi"
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2795,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2812,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr "Stok"
@@ -2826,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr "Tedarikçi Parçası Fiyatlandırması"
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr "Fiyatlandırma"
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Stok Kalemleri"
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr "Yeni Tedarikçi"
@@ -2858,24 +2885,24 @@ msgstr "Şirketler"
 msgid "New Company"
 msgstr "Yeni Şirket"
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr "Resmi İndirin"
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr "Geçersiz yanıt: {code}"
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr "Sağlanan URL geçerli bir resim dosyası değil"
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr "Şablon için geçerli bir nesne sağlanmadı"
 
@@ -2932,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr "Filtreler"
 
@@ -3227,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Create new purchase order"
 msgid "Print purchase order report"
-msgstr "Yeni satın alma emri oluştur"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3239,17 +3264,13 @@ msgstr "Emiri dosya çıkar"
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Barcode actions"
 msgid "Order actions"
-msgstr "Barkod işlemleri"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
-#, fuzzy
-#| msgid "Edit Notes"
 msgid "Edit order"
-msgstr "Notları Düzenle"
+msgstr ""
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
@@ -3369,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr "Tedarikçi Parçası Seçin"
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr "Sipariş Emri için Dosya Yükle"
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3442,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Detaylar"
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3461,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3476,16 +3529,12 @@ msgid "Print Order Reports"
 msgstr ""
 
 #: order/templates/order/sales_order_base.html:43
-#, fuzzy
-#| msgid "Create new sales order"
 msgid "Print sales order report"
-msgstr "Yeni satış emri oluştur"
+msgstr ""
 
 #: order/templates/order/sales_order_base.html:47
-#, fuzzy
-#| msgid "Print actions"
 msgid "Print packing list"
-msgstr "Yazdırma işlemleri"
+msgstr ""
 
 #: order/templates/order/sales_order_base.html:66
 #: order/templates/order/sales_order_base.html:67 order/views.py:222
@@ -3756,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr "Parametre şablonunu tüm kategorilere ekle"
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3801,10 +3846,12 @@ msgstr "Parça Kategorileri"
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr "Parçalar"
 
@@ -3869,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3878,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr "DPN"
 
@@ -3891,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr "Parça revizyon veya versiyon numarası"
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr "Revizyon"
 
@@ -3948,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr "Bu parça müşterilere satılabilir mi?"
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr "Aktif"
 
@@ -3998,7 +4046,7 @@ msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabili
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr "Test Adı"
@@ -4015,8 +4063,8 @@ msgstr "Test Açıklaması"
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr "Gerekli"
 
@@ -4024,7 +4072,7 @@ msgstr "Gerekli"
 msgid "Is this test required to pass?"
 msgstr "Testi geçmesi için bu gerekli mi?"
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -4032,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4094,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4128,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4139,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır"
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr "Çeşide İzin Ver"
 
@@ -4164,10 +4212,8 @@ msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
 #: part/models.py:2860
-#, fuzzy
-#| msgid "Parent Stock Item"
 msgid "Parent BOM item"
-msgstr "Üst Stok Kalemi"
+msgstr ""
 
 #: part/models.py:2868
 msgid "Substitute part"
@@ -4190,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr ""
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "No stock location set"
 msgid "Low stock notification"
-msgstr "Stok konumu ayarlanmadı"
+msgstr ""
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4214,17 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
-#, fuzzy
-#| msgid "Build actions"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
-msgstr "Yapım İşi işlemleri"
+msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "Ögeyi Sil"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4234,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr "Malzeme Listesi dosyası gerekli sütün adlarını sağlandığı şekilde içermelidir "
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr "Malzeme Listesi Şablonu Yükle"
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4264,62 +4308,44 @@ msgid "This will validate each line in the BOM."
 msgstr ""
 
 #: part/templates/part/category.html:24 part/templates/part/category.html:28
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "You are subscribed to notifications for this category"
-msgstr "Bu kategori içindeki parçalar için varsayılan konum"
+msgstr ""
 
 #: part/templates/part/category.html:32
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "Subscribe to notifications for this category"
-msgstr "Bu kategori içindeki parçalar için varsayılan konum"
+msgstr ""
 
 #: part/templates/part/category.html:38
-#, fuzzy
-#| msgid "Category Settings"
 msgid "Category Actions"
-msgstr "Kategori Ayarları"
+msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Set category"
 msgid "Edit category"
-msgstr "Kategori ayarla"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Set Category"
 msgid "Edit Category"
-msgstr "Kategori Ayarla"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Set category"
 msgid "Delete category"
-msgstr "Kategori ayarla"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "Kategori Seçin"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr ""
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Set Category"
 msgid "New Category"
-msgstr "Kategori Ayarla"
+msgstr ""
 
 #: part/templates/part/category.html:67
-#, fuzzy
-#| msgid "Set category"
 msgid "Top level part category"
-msgstr "Kategori ayarla"
+msgstr ""
 
 #: part/templates/part/category.html:79
 msgid "Category Path"
@@ -4330,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr "Alt kategoriler"
 
@@ -4416,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4441,16 +4472,12 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Details"
 msgid "Part Details"
-msgstr "Detaylar"
+msgstr ""
 
 #: part/templates/part/detail.html:66
-#, fuzzy
-#| msgid "Minimum Stock"
 msgid "Minimum stock level"
-msgstr "Minimum Stok"
+msgstr ""
 
 #: part/templates/part/detail.html:97
 msgid "Latest Serial Number"
@@ -4493,7 +4520,7 @@ msgstr "Yeni Çeşit"
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4501,116 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
-#, fuzzy
-#| msgid "Part actions"
+#: part/templates/part/detail.html:345
 msgid "Export actions"
-msgstr "Parça işlemleri"
+msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
-#, fuzzy
-#| msgid "Upload File"
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
-msgstr "Dosya Yükle"
+msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr "Parça Tedarikçileri"
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4708,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr "Pasif"
 
@@ -4721,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr "Bu parça %(link)s parçasının bir çeşididir"
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4741,12 +4772,12 @@ msgstr "Satış Emirleri için Gerekli"
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4781,7 +4812,7 @@ msgid "Total Cost"
 msgstr "Toplam Maliyet"
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4815,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4885,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4907,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4927,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr "Aşağıdaki parçalara kategori ayarla"
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr "Stok Yok"
 
@@ -4950,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr "Hiçbiri"
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr "Parça Parametre Şablonu Oluştur"
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr "Parça Parametre Şablonu Düzenle"
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr "Parça Parametre Şablonu Sil"
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr "Kategori Parametre Şablonu Oluştur"
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr "Kategori Parametre Şablonu Düzenle"
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr "Kategori Parametre Şablonu Sil"
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr "Şablon adı"
@@ -5116,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5168,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr "İçin Gerekli Olan"
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5186,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr "Seri Numara"
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr "Seri No"
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5453,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5470,34 +5485,25 @@ msgid "Test notes"
 msgstr ""
 
 #: stock/serializers.py:166
-#, fuzzy
-#| msgid "Expiration date for this stock item"
 msgid "Purchase price of this stock item"
-msgstr "Bu stok kalemi için son kullanma tarihi"
+msgstr ""
 
 #: stock/serializers.py:173
-#, fuzzy
-#| msgid "Expiration date for this stock item"
 msgid "Purchase currency of this stock item"
-msgstr "Bu stok kalemi için son kullanma tarihi"
+msgstr ""
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of stock items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "Yapım işi stok kalemlerinin sayısı"
+msgstr ""
 
 #: stock/serializers.py:302
-#, fuzzy, python-brace-format
-#| msgid "Quantity to complete cannot exceed build output quantity"
+#, python-brace-format
 msgid "Quantity must not exceed available stock quantity ({q})"
-msgstr "Tamamlanacak miktar yapım işi çıktı miktarını aşamaz"
+msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new items"
-msgstr "Yapım işi çıktısı için seri numaraları girin"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
@@ -5508,10 +5514,8 @@ msgid "Optional note field"
 msgstr ""
 
 #: stock/serializers.py:339
-#, fuzzy
-#| msgid "Serial number cannot be set if quantity greater than 1"
 msgid "Serial numbers cannot be assigned to this part"
-msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
+msgstr ""
 
 #: stock/serializers.py:557
 msgid "StockItem primary key value"
@@ -5542,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5663,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5842,10 +5847,8 @@ msgid "New Location"
 msgstr "Yeni Konum"
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "Delete stock allocation"
 msgid "Top level stock location"
-msgstr "Stok tahsisini sil"
+msgstr ""
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5853,17 +5856,10 @@ msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenleneme
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr "Alt konumlar"
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr "Stok Kalemleri"
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5885,6 +5881,18 @@ msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?"
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6028,16 +6036,12 @@ msgid "Index"
 msgstr ""
 
 #: templates/InvenTree/index.html:88
-#, fuzzy
-#| msgid "Supplier Parts"
 msgid "Subscribed Parts"
-msgstr "Tedarikçi Parçaları"
+msgstr ""
 
 #: templates/InvenTree/index.html:98
-#, fuzzy
-#| msgid "Subcategories"
 msgid "Subscribed Categories"
-msgstr "Alt kategoriler"
+msgstr ""
 
 #: templates/InvenTree/index.html:108
 msgid "Latest Parts"
@@ -6136,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6159,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr "Parça Parametre Şablonu"
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6181,16 +6186,12 @@ msgid "Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit location"
 msgid "Edit Global Setting"
-msgstr "Konumu düzenle"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Change User Setting"
 msgid "Edit User Setting"
-msgstr "Kullanıcı Ayarlarını Değiştir"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6210,6 +6211,59 @@ msgstr "Şablonu Sil"
 msgid "No part parameter templates found"
 msgstr "Parça parametre şablonu bulunamadı"
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "Arama Ayarları"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6218,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6283,22 +6333,16 @@ msgid "You currently do not have any email address set up. You should really add
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:101
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Add Email Address"
-msgstr "İletişim e-posta adresi"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:111
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Enter e-mail address"
-msgstr "İletişim e-posta adresi"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:113
-#, fuzzy
-#| msgid "Email"
 msgid "Add Email"
-msgstr "E-posta"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:123
 msgid "Social Accounts"
@@ -6321,10 +6365,8 @@ msgid "Language Settings"
 msgstr "Dil Ayarları"
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Set Language"
 msgid "Select language"
-msgstr "Dili Ayarla"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6347,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6364,21 +6410,13 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-#, fuzzy
-#| msgid "Category Settings"
-msgid "Display Settings"
-msgstr "Kategori Ayarları"
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr "Tema Ayarları"
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Set Theme"
 msgid "Select theme"
-msgstr "Tema Seç"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6392,20 +6430,12 @@ msgstr "Ana Sayfa Ayarları"
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr "Arama Ayarları"
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr "InvenTree Sürüm Bilgisi"
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6478,10 +6508,8 @@ msgstr "sürüm bilgisini kopyala"
 
 #: templates/account/email_confirm.html:6
 #: templates/account/email_confirm.html:10
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Confirm Email Address"
-msgstr "İletişim e-posta adresi"
+msgstr ""
 
 #: templates/account/email_confirm.html:16
 #, python-format
@@ -6500,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6518,10 +6544,8 @@ msgid "Forgot Password?"
 msgstr ""
 
 #: templates/account/login.html:47
-#, fuzzy
-#| msgid "InvenTree Version"
 msgid "InvenTree demo instance"
-msgstr "InvenTree Sürümü"
+msgstr ""
 
 #: templates/account/login.html:47
 msgid "Click here for login details"
@@ -6571,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Enter password"
 msgid "Change password"
-msgstr "Şifrenizi girin"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6610,10 +6632,8 @@ msgid "Contact your system administrator for further information"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:7
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock is required for the following build order"
-msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:8
 #, python-format
@@ -6625,21 +6645,17 @@ msgid "Click on the following link to view this build order"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:14
-#, fuzzy
-#| msgid "The following items will be created"
 msgid "The following parts are low on required stock"
-msgstr "Aşağıdaki ögeler oluşturulacak"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Build Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "Yapım İşi Miktarı"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr "Mevcut"
@@ -6650,10 +6666,8 @@ msgid "You are receiving this email because you are subscribed to notifications
 msgstr ""
 
 #: templates/email/email.html:35
-#, fuzzy
-#| msgid "InvenTree Version"
 msgid "InvenTree version"
-msgstr "InvenTree Sürümü"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:7
 #, python-format
@@ -6665,16 +6679,12 @@ msgid "Click on the following link to view this part"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:17
-#, fuzzy
-#| msgid "No Stock"
 msgid "Total Stock"
-msgstr "Stok Yok"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Minimum Quantity"
-msgstr "Yapım İşi Miktarı"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6692,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr "Rapor Şablonu Seç"
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr "Test Raporu Şablonu Seç"
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr "Seçili stok kalemleri için rapor şablonu bulunamadı"
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr "Seçili yapım işleri için rapor şablonu bulunamadı"
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "Parçaları Seçin"
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr "Seçili parçalar için rapor şablonu bulunamadı"
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr "Seçili emirler için rapor şablonu bulunamadı"
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr "Cevap Yok"
@@ -6867,106 +6956,94 @@ msgstr "Barkod geçerli bir konumla eşleşmiyor"
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
-#, fuzzy
-#| msgid "Are you sure you want to delete this stock location?"
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
-msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?"
+msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
-#, fuzzy
-#| msgid "Update Available"
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
-msgstr "Güncelleme Mevcut"
+msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
-#, fuzzy
-#| msgid "Edit stock allocation"
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
-msgstr "Stok tahsisini düzenle"
+msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr "İşlemler"
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
-#, fuzzy
-#| msgid "Edit supplier part"
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
-msgstr "Tedarikçi parçasını düzenle"
+msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
-#, fuzzy
-#| msgid "Are you sure you want to delete this stock location?"
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
-msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?"
+msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr "Gerekli Parça"
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "Üst ögeden ayır"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -6993,40 +7070,28 @@ msgid "Delete build output"
 msgstr ""
 
 #: templates/js/translated/build.js:184
-#, fuzzy
-#| msgid "Are you sure you wish to unallocate all stock for this build?"
 msgid "Are you sure you wish to unallocate stock items from this build?"
-msgstr "Bu yapım işi için tahsis edilen tüm stokları kaldırmak istediğinizden emin misiniz?"
+msgstr ""
 
 #: templates/js/translated/build.js:202
-#, fuzzy
-#| msgid "Unallocate Stock"
 msgid "Unallocate Stock Items"
-msgstr "Stok Tahsisini Kaldır"
+msgstr ""
 
 #: templates/js/translated/build.js:220
-#, fuzzy
-#| msgid "Delete Build Output"
 msgid "Select Build Outputs"
-msgstr "Yapım İşi Çıktısı Sil"
+msgstr ""
 
 #: templates/js/translated/build.js:221
-#, fuzzy
-#| msgid "Build output must be specified"
 msgid "At least one build output must be selected"
-msgstr "Yapım işi çıktısı belirtilmeli"
+msgstr ""
 
 #: templates/js/translated/build.js:275
-#, fuzzy
-#| msgid "Build Outputs"
 msgid "Output"
-msgstr "Yapım İşi Çıktıları"
+msgstr ""
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Completed Build Outputs"
 msgid "Complete Build Outputs"
-msgstr "Tamamlanmış Yapım İşi Çıktıları"
+msgstr ""
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -7037,10 +7102,8 @@ msgid "Location not specified"
 msgstr ""
 
 #: templates/js/translated/build.js:603
-#, fuzzy
-#| msgid "No incomplete build outputs remain."
 msgid "No active build outputs found"
-msgstr "Tamamlanmamış yapım işi çıktısı kalmadı."
+msgstr ""
 
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
@@ -7089,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "Parçaları Seçin"
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7122,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7148,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -7160,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr "Şablon Parça"
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7296,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "Geçerli bir numara olmalı"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7326,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr "Etiket yazdırılmadan önce stok kalemleri seçilmeli"
@@ -7552,15 +7603,13 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
 #: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
-#, fuzzy
-#| msgid "Total price"
 msgid "Total Price"
-msgstr "Toplam fiyat"
+msgstr ""
 
 #: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
 msgid "Edit line item"
@@ -7630,326 +7679,246 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
-#, fuzzy
-#| msgid "Part Categories"
+#: templates/js/translated/part.js:335
 msgid "Part edited"
-msgstr "Parça Kategorileri"
+msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr "Çeşit bulunamadı"
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
-#, fuzzy
-#| msgid "Display list view"
 msgid "Display as list"
-msgstr "Liste görünümünü görüntüle"
+msgstr ""
 
-#: templates/js/translated/part.js:1044
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
-msgstr "Liste görünümünü görüntüle"
+msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
-msgstr "Liste görünümünü görüntüle"
+msgstr ""
 
-#: templates/js/translated/part.js:1283
-#, fuzzy
-#| msgid "Set category"
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
-msgstr "Kategori ayarla"
+msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr "Rapor Şablonu Seç"
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr "Test Raporu Şablonu Seç"
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr "Seçili stok kalemleri için rapor şablonu bulunamadı"
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr "Seçili yapım işleri için rapor şablonu bulunamadı"
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr "Seçili parçalar için rapor şablonu bulunamadı"
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr "Seçili emirler için rapor şablonu bulunamadı"
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
-#, fuzzy
-#| msgid "Serialize Stock"
 msgid "Serialize Stock Item"
-msgstr "Stoku Seri Numarala"
+msgstr ""
 
 #: templates/js/translated/stock.js:90
 msgid "Parent stock location"
 msgstr ""
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "Stock Location"
 msgid "New Stock Location"
-msgstr "Stok Konumu"
+msgstr ""
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Expiration date for this stock item"
 msgid "Enter initial quantity for this stock item"
-msgstr "Bu stok kalemi için son kullanma tarihi"
+msgstr ""
 
 #: templates/js/translated/stock.js:195
-#, fuzzy
-#| msgid "Enter unique serial numbers (or leave blank)"
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr "Benzersiz seri numaraları giriniz (veya boş bırakınız)"
+msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Create new stock location"
 msgid "Created new stock item"
-msgstr "Yeni stok konumu oluştur"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Edited stock item"
 msgid "Created multiple stock items"
-msgstr "Düzenlenen stok kalemi"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -8096,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8144,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "Detaylar"
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr "Konum artık yok"
@@ -8184,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr "Seri No"
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8204,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr "Çeşit Stokuna İzin Ver"
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr "Alt konumları dahil et"
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr "Konumları dahil et"
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr "Seri Numaralı"
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr "Seri numarası BvE"
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr "Seri numarası büyük veya eşit"
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr "Seri numarası KvE"
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr "Seri numarası küçük veya eşit"
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr "Seri numarası"
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr "Alt konumlardaki stoku dahil et"
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr "Çeşitleri Dahil Et"
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr "Çeşit parçaların stok kalemlerini dahil et"
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr "Alt kategorilerdeki parçaları dahil et"
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr "DPN Var"
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8459,10 +8428,8 @@ msgid "About InvenTree"
 msgstr ""
 
 #: templates/navbar_demo.html:5
-#, fuzzy
-#| msgid "InvenTree Version"
 msgid "InvenTree demo mode"
-msgstr "InvenTree Sürümü"
+msgstr ""
 
 #: templates/qr_code.html:11
 msgid "QR data not provided"
@@ -8644,122 +8611,3 @@ msgstr ""
 msgid "Permission to delete items"
 msgstr ""
 
-#~ msgid "Build Order reference"
-#~ msgstr "Yapım İşi Emri referansı"
-
-#~ msgid "Order target date"
-#~ msgstr "Emir hedef tarihi"
-
-#~ msgid "Number of items to build"
-#~ msgstr "Yapılacak öge sayısı"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "Stok tahsisinin iptalini onayla"
-
-#~ msgid "Build output stock status"
-#~ msgstr "Yapım işi çıktısı stok durumu"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "Eksik olarak onayla"
-
-#~ msgid "Confirm completion with incomplete stock allocation"
-#~ msgstr "Eksik parça tahsisi ile tamamlamayı onayla"
-
-#~ msgid "Confirm build completion"
-#~ msgstr "Yapım işinin tamamlandığını onaylayın"
-
-#~ msgid "Admin view"
-#~ msgstr "Yönetici görünümü"
-
-#~ msgid "Progress"
-#~ msgstr "İlerleme"
-
-#~ msgid "Stock allocation is complete for this output"
-#~ msgstr "Bu çıktı için stok tahsisi tamamlandı"
-
-#~ msgid "Stock allocation is incomplete"
-#~ msgstr "Stok tahsisi tamamlanmamış"
-
-#~ msgid "tracked parts have not been fully allocated"
-#~ msgstr "takip edilebilir parçalar tamamen tahsis edilemedi"
-
-#~ msgid "Create New Output"
-#~ msgstr "Yeni Çıktı Oluştur"
-
-#~ msgid "Create a new build output"
-#~ msgstr "Yeni bir yapım işi çıktısı oluştur"
-
-#~ msgid "Create a new build output using the button above"
-#~ msgstr "Yukarıdaki düğmeyi kullanarak yeni bir yapım işi çıktısı oluştur"
-
-#~ msgid "Alter the quantity of stock allocated to the build output"
-#~ msgstr "Yapım işi çıktısına tahsis edilen stok miktarını değiştir"
-
-#~ msgid "Build Order Details"
-#~ msgstr "Yapım İşi Emri Detayları"
-
-#~ msgid "Child Builds"
-#~ msgstr "Alt Yapım İşleri"
-
-#~ msgid "Build Order Notes"
-#~ msgstr "Yapım İşi Emri Notları"
-
-#~ msgid "All incomplete stock allocations will be removed from the build"
-#~ msgstr "Tüm eksik stok tahsisleri yapım işinden kaldırılacak"
-
-#~ msgid "Complete Build Output"
-#~ msgstr "Tamamlanmış Yapım İşi Çıktısı"
-
-#~ msgid "Invalid stock status value selected"
-#~ msgstr "Geçersiz stok durum değeri seçildi"
-
-#~ msgid "Confirm completion of incomplete build"
-#~ msgstr "Eksik yapım işinin tamamlandığını onaylayın"
-
-#~ msgid "Build output completed"
-#~ msgstr "Yapım işi çıktısı tamamlandı"
-
-#~ msgid "Default"
-#~ msgstr "Varsayılan"
-
-#~ msgid "Current value"
-#~ msgstr "Mevcut değer"
-
-#~ msgid "Change Setting"
-#~ msgstr "Ayarları Değiştir"
-
-#~ msgid "Supplier Part Details"
-#~ msgstr "Tedarikçi Parçası Detayları"
-
-#~ msgid "Print"
-#~ msgstr "Yazdır"
-
-#~ msgid "Category Details"
-#~ msgstr "Kategori Detayları"
-
-#~ msgid "New Order"
-#~ msgstr "Yeni Sipariş"
-
-#~ msgid "Variants"
-#~ msgstr "Çeşitler"
-
-#~ msgid "Prices"
-#~ msgstr "Fiyatlar"
-
-#~ msgid "Select test report template"
-#~ msgstr "Test raporu şablonu seç"
-
-#~ msgid "Save"
-#~ msgstr "Kaydet"
-
-#~ msgid "Location Details"
-#~ msgstr "Konum Detayları"
-
-#~ msgid "Location Path"
-#~ msgstr "Konum Yolu"
-
-#~ msgid "Location Description"
-#~ msgstr "Konum Tanımı"
-
-#~ msgid "Create new location"
-#~ msgstr "Yeni konum oluştur"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index b16aaef183..20b427ee2e 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Vietnamese\n"
 "Language: vi_VN\n"
@@ -132,7 +132,7 @@ msgstr ""
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr ""
@@ -173,8 +173,9 @@ msgstr ""
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr ""
@@ -185,18 +186,19 @@ msgstr ""
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr ""
 
@@ -216,83 +218,83 @@ msgstr ""
 msgid "Filename"
 msgstr ""
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr ""
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr ""
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr ""
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr ""
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr ""
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr ""
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr ""
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr ""
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr ""
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr ""
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr ""
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr ""
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr ""
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr ""
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr ""
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr ""
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr ""
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr ""
 
@@ -417,7 +419,7 @@ msgstr ""
 msgid "Split child item"
 msgstr ""
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr ""
 
@@ -547,19 +549,18 @@ msgstr ""
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr ""
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr ""
@@ -621,8 +622,10 @@ msgstr ""
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr ""
 
@@ -635,7 +638,7 @@ msgstr ""
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr ""
@@ -659,7 +662,7 @@ msgstr ""
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr ""
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr ""
 
@@ -796,16 +799,23 @@ msgstr ""
 msgid "Link to external URL"
 msgstr ""
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr ""
 
@@ -914,7 +924,7 @@ msgstr ""
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
@@ -1065,16 +1075,16 @@ msgstr ""
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr ""
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr ""
 
@@ -1176,8 +1186,8 @@ msgstr ""
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1196,7 +1206,7 @@ msgstr ""
 msgid "Build not complete"
 msgstr ""
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr ""
 
@@ -1216,7 +1226,7 @@ msgstr ""
 msgid "Allocate stock to build"
 msgstr ""
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr ""
 
@@ -1275,10 +1285,14 @@ msgstr ""
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr ""
 
@@ -1299,32 +1313,36 @@ msgid "Edit Notes"
 msgstr ""
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr ""
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr ""
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr ""
 
@@ -1336,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr ""
 
@@ -1356,6 +1374,18 @@ msgstr ""
 msgid "Display list view"
 msgstr ""
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr ""
@@ -1541,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1607,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr ""
 
@@ -1615,9 +1645,9 @@ msgstr ""
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr ""
 
@@ -1626,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr ""
 
@@ -1643,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr ""
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr ""
 
@@ -1653,8 +1683,8 @@ msgstr ""
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr ""
 
@@ -2130,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr ""
 
@@ -2138,19 +2168,21 @@ msgstr ""
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr ""
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr ""
 
@@ -2168,13 +2200,13 @@ msgstr ""
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2195,7 +2227,7 @@ msgid "Description of the company"
 msgstr ""
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr ""
 
@@ -2239,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr ""
 
@@ -2298,25 +2330,25 @@ msgstr ""
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr ""
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr ""
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr ""
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr ""
 
@@ -2340,9 +2372,9 @@ msgid "Parameter name"
 msgstr ""
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr ""
 
@@ -2351,8 +2383,9 @@ msgid "Parameter value"
 msgstr ""
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr ""
 
@@ -2369,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr ""
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr ""
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr ""
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2417,7 +2450,7 @@ msgstr ""
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr ""
 
@@ -2443,7 +2476,7 @@ msgstr ""
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr ""
 
@@ -2482,7 +2515,7 @@ msgstr ""
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr ""
@@ -2492,7 +2525,9 @@ msgstr ""
 msgid "Upload Image"
 msgstr ""
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr ""
 
@@ -2503,7 +2538,7 @@ msgstr ""
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr ""
 
@@ -2511,8 +2546,8 @@ msgstr ""
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr ""
 
@@ -2540,7 +2575,7 @@ msgstr ""
 msgid "Create new manufacturer part"
 msgstr ""
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr ""
 
@@ -2549,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr ""
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr ""
@@ -2569,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr ""
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr ""
@@ -2599,13 +2639,13 @@ msgstr ""
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr ""
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr ""
 
@@ -2627,12 +2667,12 @@ msgid "Order part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr ""
 
@@ -2643,27 +2683,29 @@ msgstr ""
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr ""
 
@@ -2679,7 +2721,7 @@ msgid "Delete parameters"
 msgstr ""
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr ""
 
@@ -2691,20 +2733,36 @@ msgstr ""
 msgid "Delete Parameters"
 msgstr ""
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr ""
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr ""
 
@@ -2741,7 +2799,7 @@ msgstr ""
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2749,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2766,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr ""
@@ -2780,13 +2841,25 @@ msgid "Orders"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr ""
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr ""
@@ -2812,24 +2885,24 @@ msgstr ""
 msgid "New Company"
 msgstr ""
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr ""
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr ""
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr ""
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr ""
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr ""
 
@@ -2886,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr ""
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr ""
 
@@ -3317,19 +3390,19 @@ msgstr ""
 msgid "Select Supplier Part"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3390,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3409,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3700,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr ""
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr ""
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3745,10 +3846,12 @@ msgstr ""
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr ""
 
@@ -3813,7 +3916,7 @@ msgstr ""
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr ""
 
@@ -3822,7 +3925,8 @@ msgid "Part category"
 msgstr ""
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3835,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr ""
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3892,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr ""
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -3942,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -3959,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -3968,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -3976,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4038,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr ""
 
@@ -4072,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr ""
 
@@ -4083,7 +4187,7 @@ msgstr ""
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4154,7 +4258,7 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
 msgstr ""
 
@@ -4170,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr ""
 
@@ -4248,6 +4356,7 @@ msgid "Category Description"
 msgstr ""
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr ""
 
@@ -4334,7 +4443,11 @@ msgstr ""
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr ""
 
@@ -4407,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4415,112 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
 msgid "Export actions"
 msgstr ""
 
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr ""
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr ""
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr ""
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr ""
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr ""
 
@@ -4618,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr ""
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4631,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4651,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4691,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4725,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr ""
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4795,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4817,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4837,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr ""
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4860,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr ""
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr ""
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr ""
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr ""
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr ""
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr ""
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr ""
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr ""
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr ""
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr ""
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr ""
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr ""
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr ""
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr ""
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5026,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr ""
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5078,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5096,42 +5210,33 @@ msgstr ""
 msgid "Serial Number"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
 msgid "Quantity is required"
 msgstr ""
@@ -5363,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5441,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5562,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5750,17 +5856,10 @@ msgstr ""
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5782,6 +5881,18 @@ msgstr ""
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6029,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6052,11 +6164,11 @@ msgstr ""
 msgid "Part Parameter Templates"
 msgstr ""
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr ""
@@ -6099,6 +6211,59 @@ msgstr ""
 msgid "No part parameter templates found"
 msgstr ""
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr ""
@@ -6107,10 +6272,6 @@ msgstr ""
 msgid "Stock Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6228,6 +6389,10 @@ msgstr ""
 msgid "Show only sufficent"
 msgstr ""
 
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
 #: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
 msgstr ""
@@ -6245,10 +6410,6 @@ msgstr ""
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr ""
@@ -6269,20 +6430,12 @@ msgstr ""
 msgid "Label Settings"
 msgstr ""
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6375,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6498,13 +6649,13 @@ msgid "The following parts are low on required stock"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr ""
@@ -6551,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6726,92 +6956,92 @@ msgstr ""
 msgid "Remove substitute part"
 msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
 msgstr ""
 
-#: templates/js/translated/bom.js:243
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
 msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
 msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
 msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
 msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
 msgstr ""
 
@@ -6922,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -6955,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -6981,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr ""
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr ""
 
@@ -6993,87 +7218,87 @@ msgstr ""
 msgid "Delete Manufacturer Part"
 msgstr ""
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr ""
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr ""
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr ""
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr ""
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr ""
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr ""
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr ""
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr ""
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr ""
 
@@ -7157,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr ""
@@ -7383,7 +7603,7 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr ""
 
@@ -7459,277 +7679,219 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr ""
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr ""
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr ""
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr ""
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr ""
 
-#: templates/js/translated/part.js:334
+#: templates/js/translated/part.js:335
 msgid "Part edited"
 msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr ""
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr ""
 
-#: templates/js/translated/part.js:456
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
 msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr ""
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr ""
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
 msgid "Display as list"
 msgstr ""
 
-#: templates/js/translated/part.js:1044
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
 msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
 msgstr ""
 
-#: templates/js/translated/part.js:1283
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
 msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
 msgid "Serialize Stock Item"
 msgstr ""
@@ -7903,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -7951,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -7991,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8011,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8448,3 +8610,4 @@ msgstr ""
 #: users/models.py:204
 msgid "Permission to delete items"
 msgstr ""
+
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index a4b552ce13..1017d54ef0 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inventree\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-22 22:08+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
@@ -132,7 +132,7 @@ msgstr "文件注释"
 
 #: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
 #: common/models.py:1186 part/models.py:2205 part/models.py:2225
-#: report/templates/report/inventree_test_report_base.html:96
+#: report/templates/report/inventree_test_report_base.html:91
 #: templates/js/translated/stock.js:2054
 msgid "User"
 msgstr "用户"
@@ -173,8 +173,9 @@ msgstr "选择无效"
 #: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
 #: label/models.py:112 part/models.py:741 part/models.py:2389
 #: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:498
-#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
 #: templates/js/translated/stock.js:1847
 msgid "Name"
 msgstr "名称"
@@ -185,18 +186,19 @@ msgstr "名称"
 #: company/templates/company/supplier_part.html:81 label/models.py:119
 #: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
 #: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
 #: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:426 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
 #: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:557 templates/js/translated/part.js:745
-#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291
-#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
 msgid "Description"
 msgstr "描述信息"
 
@@ -216,83 +218,83 @@ msgstr "必须是有效数字"
 msgid "Filename"
 msgstr "文件名"
 
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:664
 msgid "German"
 msgstr "德语"
 
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:665
 msgid "Greek"
 msgstr "希腊语"
 
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:666
 msgid "English"
 msgstr "英语"
 
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:667
 msgid "Spanish"
 msgstr "西班牙语"
 
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:668
 msgid "Spanish (Mexican)"
 msgstr ""
 
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:669
 msgid "French"
 msgstr "法语"
 
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:670
 msgid "Hebrew"
 msgstr "希伯来语"
 
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:671
 msgid "Italian"
 msgstr "意大利语"
 
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:672
 msgid "Japanese"
 msgstr "日语"
 
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:673
 msgid "Korean"
 msgstr "韩语"
 
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:674
 msgid "Dutch"
 msgstr "荷兰语"
 
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:675
 msgid "Norwegian"
 msgstr "挪威语"
 
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:676
 msgid "Polish"
 msgstr "波兰语"
 
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:677
 msgid "Portugese"
 msgstr ""
 
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:678
 msgid "Russian"
 msgstr "俄语"
 
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:679
 msgid "Swedish"
 msgstr "瑞典语"
 
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:680
 msgid "Thai"
 msgstr "泰语"
 
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:681
 msgid "Turkish"
 msgstr "土耳其语"
 
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:682
 msgid "Vietnamese"
 msgstr "越南语"
 
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:683
 msgid "Chinese"
 msgstr "中文(简体)"
 
@@ -417,7 +419,7 @@ msgstr "从父项拆分"
 msgid "Split child item"
 msgstr "拆分子项"
 
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
 msgid "Sent to customer"
 msgstr "发送给客户"
 
@@ -547,19 +549,18 @@ msgstr "与库存项关联的条形码"
 #: company/forms.py:42 company/templates/company/supplier_part.html:251
 #: order/forms.py:102 order/models.py:729 order/models.py:991
 #: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2576
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
 #: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1122 part/templates/part/detail.html:1208
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
 #: part/templates/part/part_pricing.html:16
 #: report/templates/report/inventree_build_order_base.html:114
 #: report/templates/report/inventree_po_report.html:91
 #: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
+#: report/templates/report/inventree_test_report_base.html:77
 #: stock/forms.py:156 stock/serializers.py:286
 #: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:441
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
 #: templates/js/translated/build.js:235 templates/js/translated/build.js:435
 #: templates/js/translated/build.js:629 templates/js/translated/build.js:639
 #: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -567,8 +568,8 @@ msgstr "与库存项关联的条形码"
 #: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
 #: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
 #: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1503 templates/js/translated/part.js:1626
-#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
 #: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
 msgid "Quantity"
 msgstr "数量"
@@ -621,8 +622,10 @@ msgstr "生产订单"
 #: build/models.py:138 build/templates/build/build_base.html:13
 #: build/templates/build/index.html:8 build/templates/build/index.html:12
 #: order/templates/order/sales_order_detail.html:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
 msgid "Build Orders"
 msgstr "生产订单"
 
@@ -635,7 +638,7 @@ msgstr "相关生产订单"
 #: part/templates/part/bom_upload/match_parts.html:30
 #: report/templates/report/inventree_po_report.html:92
 #: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:433 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
 #: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
 msgid "Reference"
 msgstr "引用"
@@ -659,7 +662,7 @@ msgstr "此次生产匹配的订单"
 #: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
 #: part/models.py:2151 part/models.py:2167 part/models.py:2186
 #: part/models.py:2203 part/models.py:2305 part/models.py:2427
-#: part/models.py:2560 part/models.py:2867 part/templates/part/detail.html:336
+#: part/models.py:2560 part/models.py:2867
 #: part/templates/part/part_app_base.html:8
 #: part/templates/part/part_pricing.html:12
 #: part/templates/part/set_category.html:13
@@ -669,15 +672,15 @@ msgstr "此次生产匹配的订单"
 #: templates/InvenTree/search.html:86
 #: templates/email/build_order_required_stock.html:17
 #: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:391 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
 #: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
 #: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:726 templates/js/translated/part.js:892
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
 msgid "Part"
 msgstr "商品"
 
@@ -796,16 +799,23 @@ msgstr "外部链接"
 msgid "Link to external URL"
 msgstr "链接到外部 URL"
 
-#: build/models.py:334 build/serializers.py:201 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
 #: report/templates/report/inventree_build_order_base.html:173
 #: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
 #: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
-#: stock/serializers.py:584 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:597 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
 msgid "Notes"
 msgstr "备注"
 
@@ -892,28 +902,20 @@ msgid "Build Output"
 msgstr ""
 
 #: build/serializers.py:146
-#, fuzzy
-#| msgid "Build output does not match build"
 msgid "Build output does not match the parent build"
-msgstr "生产产出与生产不匹配"
+msgstr ""
 
 #: build/serializers.py:150
-#, fuzzy
-#| msgid "Build output does not match Build Order"
 msgid "Output part does not match BuildOrder part"
-msgstr "生产产出与订单不匹配"
+msgstr ""
 
 #: build/serializers.py:154
-#, fuzzy
-#| msgid "Build output is already completed"
 msgid "This build output has already been completed"
-msgstr "生产产出已完成"
+msgstr ""
 
 #: build/serializers.py:158
-#, fuzzy
-#| msgid "Required stock has not been fully allocated"
 msgid "This build output is not fully allocated"
-msgstr "所需库存尚未完全分配"
+msgstr ""
 
 #: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
 #: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
@@ -922,17 +924,15 @@ msgstr "所需库存尚未完全分配"
 #: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
 #: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
 #: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
 #: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
 #: templates/js/translated/stock.js:1931
 msgid "Location"
 msgstr "地点"
 
 #: build/serializers.py:191
-#, fuzzy
-#| msgid "Location of completed parts"
 msgid "Location for completed build outputs"
-msgstr "已完成商品所在仓储地点"
+msgstr ""
 
 #: build/serializers.py:197 build/templates/build/build_base.html:129
 #: build/templates/build/detail.html:63 order/models.py:572
@@ -945,10 +945,8 @@ msgid "Status"
 msgstr "状态"
 
 #: build/serializers.py:213
-#, fuzzy
-#| msgid "Build output must be specified"
 msgid "A list of build outputs must be provided"
-msgstr "必须指定生成产出"
+msgstr ""
 
 #: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
 #: part/models.py:2859
@@ -956,16 +954,12 @@ msgid "BOM Item"
 msgstr ""
 
 #: build/serializers.py:269
-#, fuzzy
-#| msgid "Build Outputs"
 msgid "Build output"
-msgstr "生产产出"
+msgstr ""
 
 #: build/serializers.py:278
-#, fuzzy
-#| msgid "Build output does not match build"
 msgid "Build output must point to the same build"
-msgstr "生产产出与生产不匹配"
+msgstr ""
 
 #: build/serializers.py:319
 msgid "bom_item.part must point to the same part as the build order"
@@ -998,10 +992,8 @@ msgid "Allocation items must be provided"
 msgstr ""
 
 #: build/tasks.py:92
-#, fuzzy
-#| msgid "Completed build order"
 msgid "Stock required for build order"
-msgstr "已完成的生产订单"
+msgstr ""
 
 #: build/templates/build/build_base.html:39
 #: order/templates/order/order_base.html:28
@@ -1010,10 +1002,8 @@ msgid "Print actions"
 msgstr "打印操作"
 
 #: build/templates/build/build_base.html:43
-#, fuzzy
-#| msgid "Print Order Reports"
 msgid "Print build order report"
-msgstr "打印订单报表"
+msgstr ""
 
 #: build/templates/build/build_base.html:50
 msgid "Build actions"
@@ -1085,16 +1075,16 @@ msgstr "此次生产的截止日期为 %(target)s"
 #: order/templates/order/order_base.html:102
 #: order/templates/order/sales_order_base.html:78
 #: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:288
-#: templates/js/translated/table_filters.js:316
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
 msgid "Overdue"
 msgstr "逾期"
 
 #: build/templates/build/build_base.html:150
 #: build/templates/build/detail.html:68 build/templates/build/detail.html:143
 #: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:298
+#: templates/js/translated/table_filters.js:304
 msgid "Completed"
 msgstr "已完成"
 
@@ -1190,16 +1180,14 @@ msgid "Destination location not specified"
 msgstr ""
 
 #: build/templates/build/detail.html:74 templates/js/translated/build.js:647
-#, fuzzy
-#| msgid "Allocate Stock"
 msgid "Allocated Parts"
-msgstr "分配库存"
+msgstr ""
 
 #: build/templates/build/detail.html:81
 #: stock/templates/stock/item_base.html:304
 #: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:227
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
 msgid "Batch"
 msgstr ""
 
@@ -1218,7 +1206,7 @@ msgstr "无预计日期"
 msgid "Build not complete"
 msgstr "生产未完成"
 
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
 msgid "Child Build Orders"
 msgstr "子生产订单"
 
@@ -1238,7 +1226,7 @@ msgstr "未分配库存"
 msgid "Allocate stock to build"
 msgstr "为生产分配库存"
 
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
 msgid "Allocate Stock"
 msgstr "分配库存"
 
@@ -1278,37 +1266,33 @@ msgid "Create new build output"
 msgstr ""
 
 #: build/templates/build/detail.html:232
-#, fuzzy
-#| msgid "Build Outputs"
 msgid "New Build Output"
-msgstr "生产产出"
+msgstr ""
 
 #: build/templates/build/detail.html:246
-#, fuzzy
-#| msgid "Options"
 msgid "Output Actions"
-msgstr "选项"
+msgstr ""
 
 #: build/templates/build/detail.html:250
-#, fuzzy
-#| msgid "Completed items"
 msgid "Complete selected items"
-msgstr "已完成项目"
+msgstr ""
 
 #: build/templates/build/detail.html:251
-#, fuzzy
-#| msgid "Incomplete Outputs"
 msgid "Complete outputs"
-msgstr "未完成输出"
+msgstr ""
 
 #: build/templates/build/detail.html:266
 msgid "Completed Build Outputs"
 msgstr ""
 
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
 #: order/templates/order/purchase_order_detail.html:60
 #: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
 msgid "Attachments"
 msgstr "附件"
 
@@ -1329,32 +1313,36 @@ msgid "Edit Notes"
 msgstr "编辑备注"
 
 #: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
 #: order/templates/order/purchase_order_detail.html:170
 #: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
 #: templates/attachment_button.html:4
 msgid "Add Attachment"
 msgstr "添加附件"
 
 #: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
 #: order/templates/order/purchase_order_detail.html:142
 #: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
 msgid "Edit Attachment"
 msgstr "编辑附件"
 
 #: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
 #: order/templates/order/purchase_order_detail.html:149
 #: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1032 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
 #: templates/js/translated/order.js:1243
 msgid "Confirm Delete Operation"
 msgstr "确认删除操作"
 
 #: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
 #: order/templates/order/purchase_order_detail.html:150
 #: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
 msgid "Delete Attachment"
 msgstr "删除附件"
 
@@ -1366,7 +1354,7 @@ msgstr ""
 msgid "All untracked stock items have been allocated"
 msgstr ""
 
-#: build/templates/build/index.html:18 part/templates/part/detail.html:433
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
 msgid "New Build Order"
 msgstr "新建生产订单"
 
@@ -1386,6 +1374,18 @@ msgstr "显示日历"
 msgid "Display list view"
 msgstr "列表视图"
 
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
 #: build/views.py:76
 msgid "Build was cancelled"
 msgstr "生产已取消"
@@ -1512,16 +1512,12 @@ msgid "Key string must be unique"
 msgstr ""
 
 #: common/models.py:559
-#, fuzzy
-#| msgid "Group"
 msgid "No group"
-msgstr "群组"
+msgstr ""
 
 #: common/models.py:601
-#, fuzzy
-#| msgid "Order required parts"
 msgid "Restart required"
-msgstr "订单所需部件"
+msgstr ""
 
 #: common/models.py:602
 msgid "A setting has been changed which requires a server restart"
@@ -1575,7 +1571,7 @@ msgstr ""
 msgid "Allow download of remote images and files from external URL"
 msgstr ""
 
-#: common/models.py:649
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
 msgid "Barcode Support"
 msgstr ""
 
@@ -1641,7 +1637,7 @@ msgstr ""
 
 #: common/models.py:703 part/models.py:2429 report/models.py:187
 #: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:367
+#: templates/js/translated/table_filters.js:373
 msgid "Template"
 msgstr "模板"
 
@@ -1649,9 +1645,9 @@ msgstr "模板"
 msgid "Parts are templates by default"
 msgstr ""
 
-#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:954
-#: templates/js/translated/table_filters.js:162
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
 msgid "Assembly"
 msgstr "组装"
 
@@ -1660,7 +1656,7 @@ msgid "Parts can be assembled from other components by default"
 msgstr ""
 
 #: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:389
 msgid "Component"
 msgstr "组件"
 
@@ -1677,7 +1673,7 @@ msgid "Parts are purchaseable by default"
 msgstr "商品默认可购买"
 
 #: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:391
+#: templates/js/translated/table_filters.js:397
 msgid "Salable"
 msgstr "可销售"
 
@@ -1687,8 +1683,8 @@ msgstr "商品默认可销售"
 
 #: common/models.py:738 part/models.py:900
 #: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:94
-#: templates/js/translated/table_filters.js:395
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
 msgid "Trackable"
 msgstr "可追踪"
 
@@ -1771,16 +1767,12 @@ msgid "Format to display the part name"
 msgstr ""
 
 #: common/models.py:814
-#, fuzzy
-#| msgid "Test Reports"
 msgid "Enable Reports"
-msgstr "测试报表"
+msgstr ""
 
 #: common/models.py:815
-#, fuzzy
-#| msgid "Enable generation of test reports"
 msgid "Enable generation of reports"
-msgstr "启用生成测试报表"
+msgstr ""
 
 #: common/models.py:821 templates/stats.html:25
 msgid "Debug Mode"
@@ -1915,10 +1907,8 @@ msgid "Enable SSO on the login pages"
 msgstr ""
 
 #: common/models.py:931
-#, fuzzy
-#| msgid "This field is required"
 msgid "Email required"
-msgstr "此字段为必填"
+msgstr ""
 
 #: common/models.py:932
 msgid "Require user to supply mail on signup"
@@ -1953,34 +1943,24 @@ msgid "Group on signup"
 msgstr ""
 
 #: common/models.py:956
-#, fuzzy
-#| msgid "Select which users are assigned to this group"
 msgid "Group to which new users are assigned on registration"
-msgstr "选择分配给该组的用户"
+msgstr ""
 
 #: common/models.py:1001
-#, fuzzy
-#| msgid "Show starred parts"
 msgid "Show subscribed parts"
-msgstr "显示星标商品"
+msgstr ""
 
 #: common/models.py:1002
-#, fuzzy
-#| msgid "Show starred parts on the homepage"
 msgid "Show subscribed parts on the homepage"
-msgstr "在主页上显示星标商品"
+msgstr ""
 
 #: common/models.py:1007
-#, fuzzy
-#| msgid "Subcategories"
 msgid "Show subscribed categories"
-msgstr "子类别"
+msgstr ""
 
 #: common/models.py:1008
-#, fuzzy
-#| msgid "Show starred parts on the homepage"
 msgid "Show subscribed part categories on the homepage"
-msgstr "在主页上显示星标商品"
+msgstr ""
 
 #: common/models.py:1013
 msgid "Show latest parts"
@@ -2139,22 +2119,16 @@ msgid "Search Show Stock"
 msgstr ""
 
 #: common/models.py:1133
-#, fuzzy
-#| msgid "Number of results to show in search preview window"
 msgid "Display stock levels in search preview window"
-msgstr "搜索预览窗口中显示的结果数"
+msgstr ""
 
 #: common/models.py:1139
-#, fuzzy
-#| msgid "Create Part"
 msgid "Hide Inactive Parts"
-msgstr "创建商品"
+msgstr ""
 
 #: common/models.py:1140
-#, fuzzy
-#| msgid "Number of results to show in search preview window"
 msgid "Hide inactive parts in search preview window"
-msgstr "搜索预览窗口中显示的结果数"
+msgstr ""
 
 #: common/models.py:1146
 msgid "Show Quantity in Forms"
@@ -2186,7 +2160,7 @@ msgstr ""
 
 #: common/models.py:1233 company/serializers.py:264
 #: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1508
+#: templates/js/translated/part.js:1620
 msgid "Price"
 msgstr "价格"
 
@@ -2194,19 +2168,21 @@ msgstr "价格"
 msgid "Unit price at specified quantity"
 msgstr ""
 
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
 #: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
 msgid "Upload File"
 msgstr "上传文件"
 
 #: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
 #: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
 #: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
 msgid "Match Fields"
 msgstr "匹配字段"
 
@@ -2224,13 +2200,13 @@ msgstr "已导入商品"
 
 #: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
 #: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
 #: part/templates/part/bom_upload/match_fields.html:27
 #: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
 #: part/templates/part/import_wizard/match_fields.html:27
 #: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
 msgid "Previous Step"
 msgstr ""
 
@@ -2251,7 +2227,7 @@ msgid "Description of the company"
 msgstr "公司简介"
 
 #: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
 msgid "Website"
 msgstr "网站"
 
@@ -2295,8 +2271,8 @@ msgstr ""
 #: company/models.py:131 company/models.py:348 company/models.py:564
 #: order/models.py:163 part/models.py:797
 #: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:984
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
 msgid "Link"
 msgstr "链接"
 
@@ -2354,25 +2330,25 @@ msgstr "选择商品"
 #: company/templates/company/manufacturer_part.html:93
 #: company/templates/company/supplier_part.html:104
 #: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
 msgid "Manufacturer"
 msgstr "制造商"
 
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
 msgid "Select manufacturer"
 msgstr "选择制造商"
 
 #: company/models.py:342 company/templates/company/manufacturer_part.html:97
 #: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
 msgid "MPN"
 msgstr "MPN"
 
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
 msgid "Manufacturer Part Number"
 msgstr "制造商商品编号"
 
@@ -2396,9 +2372,9 @@ msgid "Parameter name"
 msgstr "参数名称"
 
 #: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1867 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
 msgid "Value"
 msgstr "数值"
 
@@ -2407,8 +2383,9 @@ msgid "Parameter value"
 msgstr "参数值"
 
 #: company/models.py:429 part/models.py:882 part/models.py:2397
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:650
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
 msgid "Units"
 msgstr "单位"
 
@@ -2425,23 +2402,23 @@ msgstr ""
 #: order/templates/order/order_base.html:108
 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
 #: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
 msgid "Supplier"
 msgstr "供应商"
 
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
 msgid "Select supplier"
 msgstr "选择供应商"
 
 #: company/models.py:551 company/templates/company/supplier_part.html:98
 #: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
 msgid "SKU"
 msgstr "SKU"
 
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
 msgid "Supplier stock keeping unit"
 msgstr ""
 
@@ -2473,7 +2450,7 @@ msgstr "最低收费(例如库存费)"
 
 #: company/models.py:582 company/templates/company/supplier_part.html:119
 #: stock/models.py:507 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
 msgid "Packaging"
 msgstr "打包"
 
@@ -2499,7 +2476,7 @@ msgstr "货币代码"
 
 #: company/templates/company/company_base.html:8
 #: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
 msgid "Company"
 msgstr "公司"
 
@@ -2538,7 +2515,7 @@ msgstr "电话"
 #: company/templates/company/company_base.html:126 order/models.py:567
 #: order/templates/order/sales_order_base.html:114 stock/models.py:525
 #: stock/models.py:526 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
 #: templates/js/translated/stock.js:1972
 msgid "Customer"
 msgstr "客户"
@@ -2548,7 +2525,9 @@ msgstr "客户"
 msgid "Upload Image"
 msgstr "上传图片"
 
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
 msgid "Supplier Parts"
 msgstr "供应商商品"
 
@@ -2559,7 +2538,7 @@ msgstr "创建新的供应商商品"
 
 #: company/templates/company/detail.html:20
 #: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:466
+#: part/templates/part/detail.html:440
 msgid "New Supplier Part"
 msgstr "新建供应商商品"
 
@@ -2567,8 +2546,8 @@ msgstr "新建供应商商品"
 #: company/templates/company/detail.html:79
 #: company/templates/company/manufacturer_part.html:121
 #: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:475
-#: part/templates/part/detail.html:503
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
 msgid "Options"
 msgstr "选项"
 
@@ -2596,7 +2575,7 @@ msgstr "制造商商品"
 msgid "Create new manufacturer part"
 msgstr "新建制造商商品"
 
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:493
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
 msgid "New Manufacturer Part"
 msgstr "新建制造商商品"
 
@@ -2605,11 +2584,14 @@ msgid "Supplier Stock"
 msgstr "供货商库存"
 
 #: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
 #: order/templates/order/order_base.html:13
 #: order/templates/order/purchase_orders.html:8
 #: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:45
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
 #: users/models.py:45
 msgid "Purchase Orders"
 msgstr "采购订单"
@@ -2625,11 +2607,13 @@ msgid "New Purchase Order"
 msgstr "新建采购订单"
 
 #: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
 #: order/templates/order/sales_order_base.html:13
 #: order/templates/order/sales_orders.html:8
 #: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:56
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
 #: users/models.py:46
 msgid "Sales Orders"
 msgstr "销售订单"
@@ -2655,13 +2639,13 @@ msgstr "公司备注"
 
 #: company/templates/company/detail.html:383
 #: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:546
+#: part/templates/part/detail.html:520
 msgid "Delete Supplier Parts?"
 msgstr "删除供应商商品?"
 
 #: company/templates/company/detail.html:384
 #: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:547
+#: part/templates/part/detail.html:521
 msgid "All selected supplier parts will be deleted"
 msgstr "删除所有选定的供应商商品"
 
@@ -2683,12 +2667,12 @@ msgid "Order part"
 msgstr "订购商品"
 
 #: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
 msgid "Edit manufacturer part"
 msgstr "编辑制造商商品"
 
 #: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
 msgid "Delete manufacturer part"
 msgstr "删除生产商商品"
 
@@ -2699,27 +2683,29 @@ msgstr "内部商品"
 
 #: company/templates/company/manufacturer_part.html:108
 #: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:43
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
 msgid "Suppliers"
 msgstr "供应商"
 
 #: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:477
+#: part/templates/part/detail.html:451
 msgid "Delete supplier parts"
 msgstr "删除供应商商品"
 
 #: company/templates/company/manufacturer_part.html:123
 #: company/templates/company/manufacturer_part.html:152
 #: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
 msgid "Delete"
 msgstr "删除"
 
 #: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
 msgid "Parameters"
 msgstr "参数"
 
@@ -2735,7 +2721,7 @@ msgid "Delete parameters"
 msgstr "删除参数"
 
 #: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:974
 msgid "Add Parameter"
 msgstr "添加参数"
 
@@ -2747,20 +2733,36 @@ msgstr "所选参数将被删除"
 msgid "Delete Parameters"
 msgstr "删除参数"
 
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
 #: company/templates/company/supplier_part.html:7
 #: company/templates/company/supplier_part.html:24 stock/models.py:492
 #: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
 msgid "Supplier Part"
 msgstr "供应商商品"
 
 #: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
 msgid "Edit supplier part"
 msgstr "编辑供应商商品"
 
 #: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
 msgid "Delete supplier part"
 msgstr "删除供应商商品"
 
@@ -2771,10 +2773,8 @@ msgstr "供货商商品库存"
 
 #: company/templates/company/supplier_part.html:141
 #: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
-#, fuzzy
-#| msgid "Create new stock location"
 msgid "Create new stock item"
-msgstr "新建仓储地点"
+msgstr ""
 
 #: company/templates/company/supplier_part.html:142
 #: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
@@ -2799,7 +2799,7 @@ msgstr "价格信息"
 
 #: company/templates/company/supplier_part.html:184
 #: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
 msgid "Add Price Break"
 msgstr ""
 
@@ -2807,11 +2807,11 @@ msgstr ""
 msgid "No price break information found"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
 msgid "Delete Price Break"
 msgstr ""
 
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
 msgid "Edit Price Break"
 msgstr ""
 
@@ -2824,11 +2824,14 @@ msgid "Delete price break"
 msgstr ""
 
 #: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
 #: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
 #: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:426
-#: templates/js/translated/part.js:561 templates/js/translated/part.js:786
-#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
 #: templates/js/translated/stock.js:1132 templates/navbar.html:26
 msgid "Stock"
 msgstr "库存"
@@ -2838,13 +2841,25 @@ msgid "Orders"
 msgstr "订单"
 
 #: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
 msgid "Supplier Part Pricing"
 msgstr "供应商商品价格"
 
 #: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
 msgid "Pricing"
 msgstr "定价"
 
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "库存项"
+
 #: company/views.py:50
 msgid "New Supplier"
 msgstr "新增供应商"
@@ -2870,24 +2885,24 @@ msgstr "公司"
 msgid "New Company"
 msgstr "新建公司信息"
 
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
 msgid "Download Image"
 msgstr "下载图片"
 
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
 msgid "Image size exceeds maximum allowable size for download"
 msgstr "图像大小超过下载允许的最大尺寸"
 
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
 #, python-brace-format
 msgid "Invalid response: {code}"
 msgstr "无效响应: {code}"
 
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
 msgid "Supplied URL is not a valid image file"
 msgstr "提供的 URL 不是一个有效的图片文件"
 
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
 msgid "No valid objects provided to template"
 msgstr "没有为模板提供有效对象"
 
@@ -2944,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
 msgstr "查询筛选器 (逗号分隔的键值对列表)"
 
 #: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
 msgid "Filters"
 msgstr "筛选器"
 
@@ -3239,10 +3254,8 @@ msgid "Are you sure you want to delete this attachment?"
 msgstr ""
 
 #: order/templates/order/order_base.html:33
-#, fuzzy
-#| msgid "Print Order Reports"
 msgid "Print purchase order report"
-msgstr "打印订单报表"
+msgstr ""
 
 #: order/templates/order/order_base.html:35
 #: order/templates/order/sales_order_base.html:45
@@ -3251,17 +3264,13 @@ msgstr ""
 
 #: order/templates/order/order_base.html:41
 #: order/templates/order/sales_order_base.html:54
-#, fuzzy
-#| msgid "Order Parts"
 msgid "Order actions"
-msgstr "订购商品"
+msgstr ""
 
 #: order/templates/order/order_base.html:45
 #: order/templates/order/sales_order_base.html:58
-#, fuzzy
-#| msgid "Edit Notes"
 msgid "Edit order"
-msgstr "编辑备注"
+msgstr ""
 
 #: order/templates/order/order_base.html:56
 msgid "Receive items"
@@ -3381,19 +3390,19 @@ msgstr "行"
 msgid "Select Supplier Part"
 msgstr "选择供应商商品"
 
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
 msgid "Upload File for Purchase Order"
 msgstr ""
 
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
 #: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
 #, python-format
 msgid "Step %(step)s of %(count)s"
 msgstr "步骤 %(step)s / %(count)s"
 
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
 msgid "Order is already processed. Files cannot be uploaded."
 msgstr ""
 
@@ -3454,6 +3463,42 @@ msgstr ""
 msgid "Select a purchase order for %(name)s"
 msgstr ""
 
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "详情"
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
 #: order/templates/order/purchase_order_detail.html:18
 msgid "Purchase Order Items"
 msgstr ""
@@ -3473,10 +3518,6 @@ msgstr ""
 msgid "Receive Items"
 msgstr ""
 
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
 #: order/templates/order/purchase_order_detail.html:76
 #: order/templates/order/sales_order_detail.html:68
 msgid "Order Notes"
@@ -3488,16 +3529,12 @@ msgid "Print Order Reports"
 msgstr "打印订单报表"
 
 #: order/templates/order/sales_order_base.html:43
-#, fuzzy
-#| msgid "Print Order Reports"
 msgid "Print sales order report"
-msgstr "打印订单报表"
+msgstr ""
 
 #: order/templates/order/sales_order_base.html:47
-#, fuzzy
-#| msgid "Print actions"
 msgid "Print packing list"
-msgstr "打印操作"
+msgstr ""
 
 #: order/templates/order/sales_order_base.html:66
 #: order/templates/order/sales_order_base.html:67 order/views.py:222
@@ -3768,23 +3805,19 @@ msgstr ""
 msgid "Confirm that the BOM is correct"
 msgstr "确认BOM 正确"
 
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
 msgid "Select part category"
 msgstr "选择类别"
 
-#: part/forms.py:214
+#: part/forms.py:200
 msgid "Add parameter template to same level categories"
 msgstr ""
 
-#: part/forms.py:218
+#: part/forms.py:204
 msgid "Add parameter template to all categories"
 msgstr ""
 
-#: part/forms.py:238
+#: part/forms.py:224
 msgid "Input quantity for price calculation"
 msgstr ""
 
@@ -3813,10 +3846,12 @@ msgstr "商品类别"
 
 #: part/models.py:358 part/templates/part/cat_link.html:3
 #: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1304
-#: templates/navbar.html:19 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
 msgid "Parts"
 msgstr "商品"
 
@@ -3881,7 +3916,7 @@ msgstr "提高搜索结果可见性的关键字"
 #: part/models.py:778 part/models.py:2223 part/models.py:2472
 #: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
 #: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:928
+#: templates/js/translated/part.js:1021
 msgid "Category"
 msgstr "类别"
 
@@ -3890,7 +3925,8 @@ msgid "Part category"
 msgstr "商品类别"
 
 #: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:549
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
 msgid "IPN"
 msgstr ""
 
@@ -3903,7 +3939,7 @@ msgid "Part revision or version number"
 msgstr "商品版本号"
 
 #: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:553
+#: templates/js/translated/part.js:554
 msgid "Revision"
 msgstr ""
 
@@ -3960,9 +3996,9 @@ msgid "Can this part be sold to customers?"
 msgstr "此商品可以销售给客户吗?"
 
 #: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:90
-#: templates/js/translated/table_filters.js:284
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
 msgid "Active"
 msgstr ""
 
@@ -4010,7 +4046,7 @@ msgstr ""
 msgid "Test with this name already exists for this part"
 msgstr ""
 
-#: part/models.py:2310 templates/js/translated/part.js:1355
+#: part/models.py:2310 templates/js/translated/part.js:1467
 #: templates/js/translated/stock.js:828
 msgid "Test Name"
 msgstr ""
@@ -4027,8 +4063,8 @@ msgstr ""
 msgid "Enter description for this test"
 msgstr ""
 
-#: part/models.py:2322 templates/js/translated/part.js:1364
-#: templates/js/translated/table_filters.js:270
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
 msgid "Required"
 msgstr ""
 
@@ -4036,7 +4072,7 @@ msgstr ""
 msgid "Is this test required to pass?"
 msgstr ""
 
-#: part/models.py:2328 templates/js/translated/part.js:1372
+#: part/models.py:2328 templates/js/translated/part.js:1484
 msgid "Requires Value"
 msgstr ""
 
@@ -4044,7 +4080,7 @@ msgstr ""
 msgid "Does this test require a value when adding a test result?"
 msgstr ""
 
-#: part/models.py:2334 templates/js/translated/part.js:1379
+#: part/models.py:2334 templates/js/translated/part.js:1491
 msgid "Requires Attachment"
 msgstr ""
 
@@ -4106,9 +4142,9 @@ msgstr ""
 msgid "BOM quantity for this BOM item"
 msgstr ""
 
-#: part/models.py:2578 templates/js/translated/bom.js:452
-#: templates/js/translated/bom.js:526
-#: templates/js/translated/table_filters.js:86
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
 msgid "Optional"
 msgstr "可选项"
 
@@ -4140,10 +4176,10 @@ msgstr ""
 msgid "BOM line checksum"
 msgstr ""
 
-#: part/models.py:2594 templates/js/translated/bom.js:543
-#: templates/js/translated/bom.js:550
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
 #: templates/js/translated/table_filters.js:68
-#: templates/js/translated/table_filters.js:82
+#: templates/js/translated/table_filters.js:88
 msgid "Inherited"
 msgstr "继承项"
 
@@ -4151,7 +4187,7 @@ msgstr "继承项"
 msgid "This BOM item is inherited by BOMs for variant parts"
 msgstr ""
 
-#: part/models.py:2600 templates/js/translated/bom.js:535
+#: part/models.py:2600 templates/js/translated/bom.js:537
 msgid "Allow Variants"
 msgstr ""
 
@@ -4176,16 +4212,12 @@ msgid "Substitute part cannot be the same as the master part"
 msgstr ""
 
 #: part/models.py:2860
-#, fuzzy
-#| msgid "Parent Build"
 msgid "Parent BOM item"
-msgstr "上级生产"
+msgstr ""
 
 #: part/models.py:2868
-#, fuzzy
-#| msgid "Supplier part"
 msgid "Substitute part"
-msgstr "供应商商品"
+msgstr ""
 
 #: part/models.py:2879
 msgid "Part 1"
@@ -4204,10 +4236,8 @@ msgid "Error creating relationship: check that the part is not related to itself
 msgstr ""
 
 #: part/tasks.py:53
-#, fuzzy
-#| msgid "No stock location set"
 msgid "Low stock notification"
-msgstr "未设置仓储地点"
+msgstr ""
 
 #: part/templates/part/bom.html:6
 msgid "You do not have permission to edit the BOM."
@@ -4228,17 +4258,13 @@ msgstr ""
 msgid "The BOM for <em>%(part)s</em> has not been validated."
 msgstr ""
 
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
-#, fuzzy
-#| msgid "Build actions"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
 msgid "BOM actions"
-msgstr "生产操作"
+msgstr ""
 
 #: part/templates/part/bom.html:34
-#, fuzzy
-#| msgid "Delete Item"
 msgid "Delete Items"
-msgstr "删除项"
+msgstr ""
 
 #: part/templates/part/bom_duplicate.html:13
 msgid "This part already has a Bill of Materials"
@@ -4248,23 +4274,27 @@ msgstr ""
 msgid "Select Part"
 msgstr "选择商品"
 
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
 msgid "Upload Bill of Materials"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
 msgid "Requirements for BOM upload"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "The BOM file must contain the required named columns as provided in the "
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
 msgid "BOM Upload Template"
 msgstr ""
 
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
 msgid "Each part must already exist in the database"
 msgstr "每个商品必须已经存在于数据库"
 
@@ -4278,62 +4308,44 @@ msgid "This will validate each line in the BOM."
 msgstr ""
 
 #: part/templates/part/category.html:24 part/templates/part/category.html:28
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "You are subscribed to notifications for this category"
-msgstr "此类别商品的默认仓储地点"
+msgstr ""
 
 #: part/templates/part/category.html:32
-#, fuzzy
-#| msgid "Default location for parts in this category"
 msgid "Subscribe to notifications for this category"
-msgstr "此类别商品的默认仓储地点"
+msgstr ""
 
 #: part/templates/part/category.html:38
-#, fuzzy
-#| msgid "Category Settings"
 msgid "Category Actions"
-msgstr "类别设置"
+msgstr ""
 
 #: part/templates/part/category.html:43
-#, fuzzy
-#| msgid "Edit part category"
 msgid "Edit category"
-msgstr "编辑商品类别"
+msgstr ""
 
 #: part/templates/part/category.html:44
-#, fuzzy
-#| msgid "Edit Part Category"
 msgid "Edit Category"
-msgstr "编辑商品类别"
+msgstr ""
 
 #: part/templates/part/category.html:48
-#, fuzzy
-#| msgid "Delete part category"
 msgid "Delete category"
-msgstr "删除类别"
+msgstr ""
 
 #: part/templates/part/category.html:49
-#, fuzzy
-#| msgid "Select Category"
 msgid "Delete Category"
-msgstr "选择分类"
+msgstr ""
 
 #: part/templates/part/category.html:57
 msgid "Create new part category"
 msgstr "新建商品类别"
 
 #: part/templates/part/category.html:58
-#, fuzzy
-#| msgid "Set Category"
 msgid "New Category"
-msgstr "设置类别"
+msgstr ""
 
 #: part/templates/part/category.html:67
-#, fuzzy
-#| msgid "top level Parts category"
 msgid "Top level part category"
-msgstr "顶层商品类别"
+msgstr ""
 
 #: part/templates/part/category.html:79
 msgid "Category Path"
@@ -4344,6 +4356,7 @@ msgid "Category Description"
 msgstr "类别说明"
 
 #: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
 msgid "Subcategories"
 msgstr "子类别"
 
@@ -4430,7 +4443,11 @@ msgstr "如果删除此类别,这些商品将移至其父类别 %(path)s"
 msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
 msgstr ""
 
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:365
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
 msgid "Duplicate Part"
 msgstr "复制部件"
 
@@ -4455,16 +4472,12 @@ msgid "%(full_name)s - <em>%(desc)s</em> (%(match_per)s%% match)"
 msgstr ""
 
 #: part/templates/part/detail.html:16
-#, fuzzy
-#| msgid "Show Part Details"
 msgid "Part Details"
-msgstr "显示商品详细信息"
+msgstr ""
 
 #: part/templates/part/detail.html:66
-#, fuzzy
-#| msgid "Minimum Stock"
 msgid "Minimum stock level"
-msgstr "最低库存"
+msgstr ""
 
 #: part/templates/part/detail.html:97
 msgid "Latest Serial Number"
@@ -4507,7 +4520,7 @@ msgstr ""
 msgid "Add new parameter"
 msgstr ""
 
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
 msgid "Related Parts"
 msgstr ""
 
@@ -4515,118 +4528,120 @@ msgstr ""
 msgid "Add Related"
 msgstr ""
 
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
 msgid "Bill of Materials"
 msgstr ""
 
-#: part/templates/part/detail.html:371
-#, fuzzy
-#| msgid "Print actions"
+#: part/templates/part/detail.html:345
 msgid "Export actions"
-msgstr "打印操作"
+msgstr ""
 
-#: part/templates/part/detail.html:375
-#, fuzzy
-#| msgid "Export"
+#: part/templates/part/detail.html:349
 msgid "Export BOM"
-msgstr "导出"
+msgstr ""
 
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
 msgid "Print BOM Report"
 msgstr ""
 
-#: part/templates/part/detail.html:387
-#, fuzzy
-#| msgid "Upload File"
+#: part/templates/part/detail.html:361
 msgid "Upload BOM"
-msgstr "上传文件"
+msgstr ""
 
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
 msgid "Copy BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:391 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
 msgid "Validate BOM"
 msgstr ""
 
-#: part/templates/part/detail.html:396
+#: part/templates/part/detail.html:370
 msgid "New BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:397
+#: part/templates/part/detail.html:371
 msgid "Add BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:410
+#: part/templates/part/detail.html:384
 msgid "Assemblies"
 msgstr ""
 
-#: part/templates/part/detail.html:427
+#: part/templates/part/detail.html:401
 msgid "Part Builds"
 msgstr ""
 
-#: part/templates/part/detail.html:452
+#: part/templates/part/detail.html:426
 msgid "Build Order Allocations"
 msgstr ""
 
-#: part/templates/part/detail.html:462
+#: part/templates/part/detail.html:436
 msgid "Part Suppliers"
 msgstr "商品供应商"
 
-#: part/templates/part/detail.html:489
+#: part/templates/part/detail.html:463
 msgid "Part Manufacturers"
 msgstr "商品制造商"
 
-#: part/templates/part/detail.html:505
+#: part/templates/part/detail.html:479
 msgid "Delete manufacturer parts"
 msgstr "删除制造商商品"
 
-#: part/templates/part/detail.html:686
+#: part/templates/part/detail.html:660
 msgid "Delete selected BOM items?"
 msgstr ""
 
-#: part/templates/part/detail.html:687
+#: part/templates/part/detail.html:661
 msgid "All selected BOM items will be deleted"
 msgstr ""
 
-#: part/templates/part/detail.html:738
+#: part/templates/part/detail.html:712
 msgid "Create BOM Item"
 msgstr ""
 
-#: part/templates/part/detail.html:876
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
 msgid "Add Test Result Template"
 msgstr ""
 
-#: part/templates/part/detail.html:933
+#: part/templates/part/detail.html:924
 msgid "Edit Part Notes"
 msgstr "编辑商品注释"
 
-#: part/templates/part/detail.html:1085
+#: part/templates/part/detail.html:1076
 #, python-format
 msgid "Purchase Unit Price - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1097
+#: part/templates/part/detail.html:1088
 #, python-format
 msgid "Unit Price-Cost Difference - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1109
+#: part/templates/part/detail.html:1100
 #, python-format
 msgid "Supplier Unit Cost - %(currency)s"
 msgstr ""
 
-#: part/templates/part/detail.html:1198
+#: part/templates/part/detail.html:1189
 #, python-format
 msgid "Unit Price - %(currency)s"
 msgstr ""
 
 #: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
 msgid "Unsuffitient privileges."
 msgstr ""
 
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
 msgid "Import Parts from File"
 msgstr "从文件导入商品"
 
@@ -4724,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
 msgstr "商品是虚拟的(不是实体零件)"
 
 #: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
 #: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:464 templates/js/translated/part.js:541
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
 msgid "Inactive"
 msgstr ""
 
@@ -4737,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
 msgstr ""
 
 #: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:188
 msgid "In Stock"
 msgstr ""
 
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
 msgid "On Order"
 msgstr ""
 
@@ -4757,12 +4772,12 @@ msgstr ""
 msgid "Allocated to Orders"
 msgstr ""
 
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
 msgid "Can Build"
 msgstr ""
 
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:793
-#: templates/js/translated/part.js:965
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
 msgid "Building"
 msgstr ""
 
@@ -4797,7 +4812,7 @@ msgid "Total Cost"
 msgstr ""
 
 #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:518
+#: templates/js/translated/bom.js:520
 msgid "No supplier pricing available"
 msgstr ""
 
@@ -4831,14 +4846,25 @@ msgstr ""
 msgid "No pricing information is available for this part."
 msgstr "此商品无价格信息可用。"
 
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
 #: part/templates/part/part_thumb.html:11
 msgid "Select from existing images"
 msgstr ""
 
 #: part/templates/part/partial_delete.html:9
 #, python-format
-msgid ""
-"Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
+msgid "Part '<strong>%(full_name)s</strong>' cannot be deleted as it is still marked as <strong>active</strong>.\n"
 "    <br>Disable the \"Active\" part attribute and re-try.\n"
 "    "
 msgstr ""
@@ -4901,7 +4927,7 @@ msgstr ""
 msgid "Calculation parameters"
 msgstr ""
 
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
 msgid "Supplier Cost"
 msgstr ""
 
@@ -4923,7 +4949,7 @@ msgstr ""
 msgid "Internal Cost"
 msgstr ""
 
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
 msgid "Add Internal Price Break"
 msgstr ""
 
@@ -4943,9 +4969,9 @@ msgstr ""
 msgid "Set category for the following parts"
 msgstr "为以下商品设置类别"
 
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474
-#: templates/js/translated/part.js:428 templates/js/translated/part.js:783
-#: templates/js/translated/part.js:969
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
 msgid "No Stock"
 msgstr ""
 
@@ -4966,136 +4992,123 @@ msgstr ""
 msgid "Unknown database"
 msgstr ""
 
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
 msgid "Set Part Category"
 msgstr "设置商品类别"
 
-#: part/views.py:211
+#: part/views.py:142
 #, python-brace-format
 msgid "Set category for {n} parts"
 msgstr "为 {n} 个商品设置类别"
 
-#: part/views.py:283
+#: part/views.py:214
 msgid "Match References"
 msgstr ""
 
-#: part/views.py:567
+#: part/views.py:498
 msgid "None"
 msgstr ""
 
-#: part/views.py:626
+#: part/views.py:557
 msgid "Part QR Code"
 msgstr "商品二维码"
 
-#: part/views.py:728
+#: part/views.py:659
 msgid "Select Part Image"
 msgstr "选择商品图像"
 
-#: part/views.py:754
+#: part/views.py:685
 msgid "Updated part image"
 msgstr "更新商品图像"
 
-#: part/views.py:757
+#: part/views.py:688
 msgid "Part image not found"
 msgstr "未找到商品图像"
 
-#: part/views.py:769
+#: part/views.py:700
 msgid "Duplicate BOM"
 msgstr ""
 
-#: part/views.py:799
+#: part/views.py:730
 msgid "Confirm duplication of BOM from parent"
 msgstr ""
 
-#: part/views.py:841
+#: part/views.py:772
 msgid "Confirm that the BOM is valid"
 msgstr ""
 
-#: part/views.py:852
+#: part/views.py:783
 msgid "Validated Bill of Materials"
 msgstr ""
 
-#: part/views.py:925
+#: part/views.py:856
 msgid "Match Parts"
 msgstr "匹配商品"
 
-#: part/views.py:1261
+#: part/views.py:1192
 msgid "Export Bill of Materials"
 msgstr ""
 
-#: part/views.py:1313
+#: part/views.py:1244
 msgid "Confirm Part Deletion"
 msgstr "确认删除商品"
 
-#: part/views.py:1320
+#: part/views.py:1251
 msgid "Part was deleted"
 msgstr "商品已删除"
 
-#: part/views.py:1329
+#: part/views.py:1260
 msgid "Part Pricing"
 msgstr "商品价格"
 
-#: part/views.py:1478
+#: part/views.py:1409
 msgid "Create Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1488
+#: part/views.py:1419
 msgid "Edit Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1495
+#: part/views.py:1426
 msgid "Delete Part Parameter Template"
 msgstr ""
 
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
 msgid "Edit Part Category"
 msgstr "编辑商品类别"
 
-#: part/views.py:1592
+#: part/views.py:1523
 msgid "Delete Part Category"
 msgstr "删除商品类别"
 
-#: part/views.py:1598
+#: part/views.py:1529
 msgid "Part category was deleted"
 msgstr "商品类别已删除"
 
-#: part/views.py:1607
+#: part/views.py:1538
 msgid "Create Category Parameter Template"
 msgstr "创建类别参数模板"
 
-#: part/views.py:1708
+#: part/views.py:1639
 msgid "Edit Category Parameter Template"
 msgstr "编辑类别参数模板"
 
-#: part/views.py:1764
+#: part/views.py:1695
 msgid "Delete Category Parameter Template"
 msgstr "删除类别参数模板"
 
-#: part/views.py:1786
+#: part/views.py:1717
 msgid "Added new price break"
 msgstr ""
 
-#: part/views.py:1862
+#: part/views.py:1793
 msgid "Edit Internal Price Break"
 msgstr ""
 
-#: part/views.py:1870
+#: part/views.py:1801
 msgid "Delete Internal Price Break"
 msgstr ""
 
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
 #: report/models.py:182
 msgid "Template name"
 msgstr ""
@@ -5132,51 +5145,51 @@ msgstr ""
 msgid "Include test results for stock items installed inside assembled item"
 msgstr ""
 
-#: report/models.py:382
+#: report/models.py:380
 msgid "Build Filters"
 msgstr ""
 
-#: report/models.py:383
+#: report/models.py:381
 msgid "Build query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:425
+#: report/models.py:423
 msgid "Part Filters"
 msgstr "商品过滤器"
 
-#: report/models.py:426
+#: report/models.py:424
 msgid "Part query filters (comma-separated list of key=value pairs"
 msgstr ""
 
-#: report/models.py:460
+#: report/models.py:458
 msgid "Purchase order query filters"
 msgstr ""
 
-#: report/models.py:498
+#: report/models.py:496
 msgid "Sales order query filters"
 msgstr ""
 
-#: report/models.py:548
+#: report/models.py:546
 msgid "Snippet"
 msgstr ""
 
-#: report/models.py:549
+#: report/models.py:547
 msgid "Report snippet file"
 msgstr ""
 
-#: report/models.py:553
+#: report/models.py:551
 msgid "Snippet file description"
 msgstr ""
 
-#: report/models.py:588
+#: report/models.py:586
 msgid "Asset"
 msgstr ""
 
-#: report/models.py:589
+#: report/models.py:587
 msgid "Report asset file"
 msgstr ""
 
-#: report/models.py:592
+#: report/models.py:590
 msgid "Asset file description"
 msgstr ""
 
@@ -5184,16 +5197,11 @@ msgstr ""
 msgid "Required For"
 msgstr ""
 
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
 #: report/templates/report/inventree_test_report_base.html:21
 msgid "Stock Item Test Report"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:79
+#: report/templates/report/inventree_test_report_base.html:75
 #: stock/models.py:530 stock/templates/stock/item_base.html:238
 #: templates/js/translated/build.js:233 templates/js/translated/build.js:637
 #: templates/js/translated/build.js:1013
@@ -5202,47 +5210,36 @@ msgstr ""
 msgid "Serial Number"
 msgstr "序列号"
 
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
 msgid "Test Results"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:93
+#: report/templates/report/inventree_test_report_base.html:88
 #: stock/models.py:1855
 msgid "Test"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:94
+#: report/templates/report/inventree_test_report_base.html:89
 #: stock/models.py:1861
 msgid "Result"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
 #: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
 msgid "Date"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
 msgid "Pass"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
 msgid "Fail"
 msgstr ""
 
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
 #: stock/api.py:422
-#, fuzzy
-#| msgid "This field is required"
 msgid "Quantity is required"
-msgstr "此字段为必填"
+msgstr ""
 
 #: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
 #: stock/templates/stock/item_base.html:382
@@ -5471,7 +5468,7 @@ msgstr ""
 msgid "Test name"
 msgstr ""
 
-#: stock/models.py:1862 templates/js/translated/table_filters.js:260
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
 msgid "Test result"
 msgstr ""
 
@@ -5488,48 +5485,37 @@ msgid "Test notes"
 msgstr ""
 
 #: stock/serializers.py:166
-#, fuzzy
-#| msgid "Source stock item"
 msgid "Purchase price of this stock item"
-msgstr "源库存项"
+msgstr ""
 
 #: stock/serializers.py:173
 msgid "Purchase currency of this stock item"
 msgstr ""
 
 #: stock/serializers.py:287
-#, fuzzy
-#| msgid "Number of stock items to build"
 msgid "Enter number of stock items to serialize"
-msgstr "要生产的项目数量"
+msgstr ""
 
 #: stock/serializers.py:302
-#, fuzzy, python-brace-format
-#| msgid "Quantity to complete cannot exceed build output quantity"
+#, python-brace-format
 msgid "Quantity must not exceed available stock quantity ({q})"
-msgstr "完成数量不能超过生产产出数量"
+msgstr ""
 
 #: stock/serializers.py:308
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new items"
-msgstr "输入生产产出的序列号"
+msgstr ""
 
 #: stock/serializers.py:319 stock/serializers.py:687
 msgid "Destination stock location"
 msgstr ""
 
 #: stock/serializers.py:326
-#, fuzzy
-#| msgid "Location not specified"
 msgid "Optional note field"
-msgstr "未指定仓储地点"
+msgstr ""
 
 #: stock/serializers.py:339
-#, fuzzy
-#| msgid "Select which users are assigned to this group"
 msgid "Serial numbers cannot be assigned to this part"
-msgstr "选择分配给该组的用户"
+msgstr ""
 
 #: stock/serializers.py:557
 msgid "StockItem primary key value"
@@ -5560,6 +5546,7 @@ msgid "This stock item does not have any child items"
 msgstr ""
 
 #: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
 msgid "Test Data"
 msgstr ""
 
@@ -5681,13 +5668,13 @@ msgstr ""
 
 #: stock/templates/stock/item_base.html:136
 #: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:241
+#: templates/js/translated/table_filters.js:247
 msgid "Expired"
 msgstr ""
 
 #: stock/templates/stock/item_base.html:146
 #: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:253
 msgid "Stale"
 msgstr ""
 
@@ -5860,10 +5847,8 @@ msgid "New Location"
 msgstr "新建仓储地点"
 
 #: stock/templates/stock/location.html:86
-#, fuzzy
-#| msgid "No stock location set"
 msgid "Top level stock location"
-msgstr "未设置仓储地点"
+msgstr ""
 
 #: stock/templates/stock/location.html:95
 msgid "You are not in the list of owners of this location. This stock location cannot be edited."
@@ -5871,17 +5856,10 @@ msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。
 
 #: stock/templates/stock/location.html:113
 #: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
 msgid "Sublocations"
 msgstr ""
 
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr "库存项"
-
 #: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
 #: templates/stats.html:97 users/models.py:42
 msgid "Stock Locations"
@@ -5903,6 +5881,18 @@ msgstr "确实要删除此仓储地点吗?"
 msgid "Loading..."
 msgstr ""
 
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
 #: stock/templates/stock/stock_uninstall.html:8
 msgid "The following stock items will be uninstalled"
 msgstr ""
@@ -6046,16 +6036,12 @@ msgid "Index"
 msgstr ""
 
 #: templates/InvenTree/index.html:88
-#, fuzzy
-#| msgid "Supplied Parts"
 msgid "Subscribed Parts"
-msgstr "供应商商品"
+msgstr ""
 
 #: templates/InvenTree/index.html:98
-#, fuzzy
-#| msgid "Subcategories"
 msgid "Subscribed Categories"
-msgstr "子类别"
+msgstr ""
 
 #: templates/InvenTree/index.html:108
 msgid "Latest Parts"
@@ -6154,6 +6140,7 @@ msgid "Server Settings"
 msgstr ""
 
 #: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
 msgid "Login Settings"
 msgstr ""
 
@@ -6177,11 +6164,11 @@ msgstr "导入商品"
 msgid "Part Parameter Templates"
 msgstr "商品参数模板"
 
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
 msgid "Purchase Order Settings"
 msgstr "采购订单设置"
 
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
 #: templates/InvenTree/settings/user_reports.html:9
 msgid "Report Settings"
 msgstr "报表设置"
@@ -6199,16 +6186,12 @@ msgid "Settings"
 msgstr "设置"
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit setting"
 msgid "Edit Global Setting"
-msgstr "编辑设置"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:65
-#, fuzzy
-#| msgid "Edit setting"
 msgid "Edit User Setting"
-msgstr "编辑设置"
+msgstr ""
 
 #: templates/InvenTree/settings/settings.html:148
 msgid "No category parameter templates found"
@@ -6228,6 +6211,59 @@ msgstr "删除模板"
 msgid "No part parameter templates found"
 msgstr "未找到商品参数模板"
 
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr "用户设置"
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr "帐户设置"
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "搜索设置"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
 #: templates/InvenTree/settings/so.html:7
 msgid "Sales Order Settings"
 msgstr "销售订单设置"
@@ -6236,10 +6272,6 @@ msgstr "销售订单设置"
 msgid "Stock Settings"
 msgstr "库存设置"
 
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr "帐户设置"
-
 #: templates/InvenTree/settings/user.html:18
 #: templates/js/translated/helpers.js:26
 msgid "Edit"
@@ -6301,22 +6333,16 @@ msgid "You currently do not have any email address set up. You should really add
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:101
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Add Email Address"
-msgstr "联系人电子邮件"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:111
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Enter e-mail address"
-msgstr "联系人电子邮件"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:113
-#, fuzzy
-#| msgid "Email"
 msgid "Add Email"
-msgstr "电子邮件"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:123
 msgid "Social Accounts"
@@ -6339,10 +6365,8 @@ msgid "Language Settings"
 msgstr "语言设置"
 
 #: templates/InvenTree/settings/user.html:186
-#, fuzzy
-#| msgid "Set Language"
 msgid "Select language"
-msgstr "设置语言"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:202
 #, python-format
@@ -6366,10 +6390,12 @@ msgid "Show only sufficent"
 msgstr ""
 
 #: templates/InvenTree/settings/user.html:217
-#, fuzzy
-#| msgid "Show latest parts"
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
 msgid "Show them too"
-msgstr "显示最近商品"
+msgstr ""
 
 #: templates/InvenTree/settings/user.html:224
 msgid "Help the translation efforts!"
@@ -6384,21 +6410,13 @@ msgstr "InventTree web 应用程序的本地语言翻译是 <a href=\"%(link)s\"
 msgid "Do you really want to remove the selected email address?"
 msgstr ""
 
-#: templates/InvenTree/settings/user_display.html:9
-#, fuzzy
-#| msgid "Email Settings"
-msgid "Display Settings"
-msgstr "电子邮件设置"
-
 #: templates/InvenTree/settings/user_display.html:25
 msgid "Theme Settings"
 msgstr "主题设置"
 
 #: templates/InvenTree/settings/user_display.html:35
-#, fuzzy
-#| msgid "Set Theme"
 msgid "Select theme"
-msgstr "设置主题"
+msgstr ""
 
 #: templates/InvenTree/settings/user_display.html:46
 msgid "Set Theme"
@@ -6412,20 +6430,12 @@ msgstr "主页设置"
 msgid "Label Settings"
 msgstr "标签设置"
 
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr "搜索设置"
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr "用户设置"
-
 #: templates/about.html:10
 msgid "InvenTree Version Information"
 msgstr ""
 
 #: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:281 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
 #: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
 #: templates/js/translated/modals.js:964 templates/modals.html:15
 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6498,10 +6508,8 @@ msgstr ""
 
 #: templates/account/email_confirm.html:6
 #: templates/account/email_confirm.html:10
-#, fuzzy
-#| msgid "Contact email address"
 msgid "Confirm Email Address"
-msgstr "联系人电子邮件"
+msgstr ""
 
 #: templates/account/email_confirm.html:16
 #, python-format
@@ -6520,16 +6528,14 @@ msgstr ""
 
 #: templates/account/login.html:21
 #, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
 "of your existing third party accounts or  <a class=\"btn btn-primary btn-small\" href=\"%(signup_url)s\">sign up</a>\n"
 "for a account and sign in below:"
 msgstr ""
 
 #: templates/account/login.html:25
 #, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
 "<a href=\"%(signup_url)s\">sign up</a> first."
 msgstr ""
 
@@ -6538,10 +6544,8 @@ msgid "Forgot Password?"
 msgstr ""
 
 #: templates/account/login.html:47
-#, fuzzy
-#| msgid "InvenTree Settings"
 msgid "InvenTree demo instance"
-msgstr "InventTree 设置"
+msgstr ""
 
 #: templates/account/login.html:47
 msgid "Click here for login details"
@@ -6591,10 +6595,8 @@ msgid "The password reset link was invalid, possibly because it has already been
 msgstr ""
 
 #: templates/account/password_reset_from_key.html:18
-#, fuzzy
-#| msgid "Change Password"
 msgid "Change password"
-msgstr "更改密码"
+msgstr ""
 
 #: templates/account/password_reset_from_key.html:22
 msgid "Your password is now changed."
@@ -6630,10 +6632,8 @@ msgid "Contact your system administrator for further information"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:7
-#, fuzzy
-#| msgid "User responsible for this build order"
 msgid "Stock is required for the following build order"
-msgstr "负责此生产订单的用户"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:8
 #, python-format
@@ -6645,21 +6645,17 @@ msgid "Click on the following link to view this build order"
 msgstr ""
 
 #: templates/email/build_order_required_stock.html:14
-#, fuzzy
-#| msgid "Allow sale of expired stock"
 msgid "The following parts are low on required stock"
-msgstr "允许销售过期库存"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:989
-#, fuzzy
-#| msgid "Build Quantity"
+#: templates/js/translated/bom.js:991
 msgid "Required Quantity"
-msgstr "生产数量"
+msgstr ""
 
 #: templates/email/build_order_required_stock.html:19
 #: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:465 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
 #: templates/js/translated/build.js:1749
 msgid "Available"
 msgstr "空闲"
@@ -6670,10 +6666,8 @@ msgid "You are receiving this email because you are subscribed to notifications
 msgstr ""
 
 #: templates/email/email.html:35
-#, fuzzy
-#| msgid "InvenTree Settings"
 msgid "InvenTree version"
-msgstr "InventTree 设置"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:7
 #, python-format
@@ -6685,16 +6679,12 @@ msgid "Click on the following link to view this part"
 msgstr ""
 
 #: templates/email/low_stock_notification.html:17
-#, fuzzy
-#| msgid "Part Stock"
 msgid "Total Stock"
-msgstr "商品库存"
+msgstr ""
 
 #: templates/email/low_stock_notification.html:19
-#, fuzzy
-#| msgid "Build Quantity"
 msgid "Minimum Quantity"
-msgstr "生产数量"
+msgstr ""
 
 #: templates/image_download.html:8
 msgid "Specify URL for downloading image"
@@ -6712,6 +6702,85 @@ msgstr ""
 msgid "Remote image must not exceed maximum allowable file size"
 msgstr ""
 
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr "选择库存项"
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr "在打印报表之前必须选择库存项目"
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr "没有找到报表"
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr "打印报表前必须选择Build(s)"
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr "选择商品"
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr "打印报表前必须选择商品"
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
 #: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
 msgid "No Response"
 msgstr ""
@@ -6884,113 +6953,97 @@ msgid "Barcode does not match a valid location"
 msgstr ""
 
 #: templates/js/translated/bom.js:184
-#, fuzzy
-#| msgid "Remove part"
 msgid "Remove substitute part"
-msgstr "移除商品"
+msgstr ""
 
-#: templates/js/translated/bom.js:226
+#: templates/js/translated/bom.js:228
 msgid "Select and add a new variant item using the input below"
 msgstr ""
 
-#: templates/js/translated/bom.js:237
-#, fuzzy
-#| msgid "Are you sure you wish to cancel this build?"
+#: templates/js/translated/bom.js:239
 msgid "Are you sure you wish to remove this substitute part link?"
-msgstr "是否确定取消生产?"
+msgstr ""
 
-#: templates/js/translated/bom.js:243
-#, fuzzy
-#| msgid "Remove part"
+#: templates/js/translated/bom.js:245
 msgid "Remove Substitute Part"
-msgstr "移除商品"
+msgstr ""
 
-#: templates/js/translated/bom.js:282
-#, fuzzy
-#| msgid "Add Supplier"
+#: templates/js/translated/bom.js:284
 msgid "Add Substitute"
-msgstr "添加供应商"
+msgstr ""
 
-#: templates/js/translated/bom.js:283
+#: templates/js/translated/bom.js:285
 msgid "Edit BOM Item Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:402
-#, fuzzy
-#| msgid "Available"
+#: templates/js/translated/bom.js:404
 msgid "Substitutes Available"
-msgstr "空闲"
+msgstr ""
 
-#: templates/js/translated/bom.js:406 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
 msgid "Variant stock allowed"
 msgstr ""
 
-#: templates/js/translated/bom.js:411
+#: templates/js/translated/bom.js:413
 msgid "Open subassembly"
 msgstr ""
 
-#: templates/js/translated/bom.js:483
+#: templates/js/translated/bom.js:485
 msgid "Substitutes"
 msgstr ""
 
-#: templates/js/translated/bom.js:498
+#: templates/js/translated/bom.js:500
 msgid "Purchase Price Range"
 msgstr ""
 
-#: templates/js/translated/bom.js:505
+#: templates/js/translated/bom.js:507
 msgid "Purchase Price Average"
 msgstr ""
 
-#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
 msgid "View BOM"
 msgstr ""
 
-#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
 #: templates/js/translated/order.js:1298
 msgid "Actions"
 msgstr ""
 
-#: templates/js/translated/bom.js:614
+#: templates/js/translated/bom.js:616
 msgid "Validate BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:616
+#: templates/js/translated/bom.js:618
 msgid "This line has been validated"
 msgstr ""
 
-#: templates/js/translated/bom.js:618
-#, fuzzy
-#| msgid "Edit supplier part"
+#: templates/js/translated/bom.js:620
 msgid "Edit substitute parts"
-msgstr "编辑供应商商品"
+msgstr ""
 
-#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
 msgid "Edit BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
 msgid "Delete BOM Item"
 msgstr ""
 
-#: templates/js/translated/bom.js:716 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
 msgid "No BOM items found"
 msgstr ""
 
-#: templates/js/translated/bom.js:772
-#, fuzzy
-#| msgid "Are you sure you want to delete this stock location?"
+#: templates/js/translated/bom.js:774
 msgid "Are you sure you want to delete this BOM item?"
-msgstr "确实要删除此仓储地点吗?"
+msgstr ""
 
-#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
 msgid "Required Part"
 msgstr ""
 
-#: templates/js/translated/bom.js:994
-#, fuzzy
-#| msgid "Split from parent item"
+#: templates/js/translated/bom.js:996
 msgid "Inherited from parent BOM"
-msgstr "从父项拆分"
+msgstr ""
 
 #: templates/js/translated/build.js:78
 msgid "Edit Build Order"
@@ -7017,40 +7070,28 @@ msgid "Delete build output"
 msgstr ""
 
 #: templates/js/translated/build.js:184
-#, fuzzy
-#| msgid "Are you sure you wish to unallocate all stock for this build?"
 msgid "Are you sure you wish to unallocate stock items from this build?"
-msgstr "您确定要取消此生产的所有库存分配?"
+msgstr ""
 
 #: templates/js/translated/build.js:202
-#, fuzzy
-#| msgid "Unallocate Stock"
 msgid "Unallocate Stock Items"
-msgstr "未分配库存"
+msgstr ""
 
 #: templates/js/translated/build.js:220
-#, fuzzy
-#| msgid "Delete Build Output"
 msgid "Select Build Outputs"
-msgstr "删除生产产出"
+msgstr ""
 
 #: templates/js/translated/build.js:221
-#, fuzzy
-#| msgid "Build output must be specified"
 msgid "At least one build output must be selected"
-msgstr "必须指定生成产出"
+msgstr ""
 
 #: templates/js/translated/build.js:275
-#, fuzzy
-#| msgid "Build Outputs"
 msgid "Output"
-msgstr "生产产出"
+msgstr ""
 
 #: templates/js/translated/build.js:291
-#, fuzzy
-#| msgid "Incomplete Build Outputs"
 msgid "Complete Build Outputs"
-msgstr "未完成的生产产出"
+msgstr ""
 
 #: templates/js/translated/build.js:386
 msgid "No build order allocations found"
@@ -7061,10 +7102,8 @@ msgid "Location not specified"
 msgstr "未指定仓储地点"
 
 #: templates/js/translated/build.js:603
-#, fuzzy
-#| msgid "No build output specified"
 msgid "No active build outputs found"
-msgstr "未指定生产产出"
+msgstr ""
 
 #: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
 #: templates/js/translated/order.js:1305
@@ -7113,11 +7152,6 @@ msgstr ""
 msgid "Specify stock allocation quantity"
 msgstr ""
 
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr "选择商品"
-
 #: templates/js/translated/build.js:1334
 msgid "You must select at least one part to allocate"
 msgstr ""
@@ -7146,8 +7180,8 @@ msgstr ""
 msgid "No builds matching query"
 msgstr ""
 
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873
-#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
 #: templates/js/translated/stock.js:1841
 msgid "Select"
 msgstr ""
@@ -7172,7 +7206,7 @@ msgstr ""
 msgid "Add Manufacturer"
 msgstr "添加制造商"
 
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
 msgid "Add Manufacturer Part"
 msgstr "添加制造商商品"
 
@@ -7184,87 +7218,87 @@ msgstr "编辑制造商商品"
 msgid "Delete Manufacturer Part"
 msgstr "删除制造商商品"
 
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
 msgid "Add Supplier"
 msgstr "添加供应商"
 
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
 msgid "Add Supplier Part"
 msgstr "添加供应商商品"
 
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
 msgid "Edit Supplier Part"
 msgstr "编辑供应商商品"
 
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
 msgid "Delete Supplier Part"
 msgstr "删除供应商商品"
 
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
 msgid "Edit Company"
 msgstr "编辑公司信息"
 
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
 msgid "Add new Company"
 msgstr "增加新的公司信息"
 
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
 msgid "Parts Supplied"
 msgstr ""
 
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
 msgid "Parts Manufactured"
 msgstr ""
 
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
 msgid "No company information found"
 msgstr "未找到该公司信息"
 
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
 msgid "The following manufacturer parts will be deleted"
 msgstr ""
 
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
 msgid "Delete Manufacturer Parts"
 msgstr "删除制造商商品"
 
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
 msgid "No manufacturer parts found"
 msgstr ""
 
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:448
-#: templates/js/translated/part.js:533
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
 msgid "Template part"
 msgstr ""
 
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:452
-#: templates/js/translated/part.js:537
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
 msgid "Assembled part"
 msgstr ""
 
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:625
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
 msgid "No parameters found"
 msgstr "无指定参数"
 
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
 msgid "Edit parameter"
 msgstr "编辑参数"
 
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
 msgid "Delete parameter"
 msgstr "删除参数"
 
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:685
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
 msgid "Edit Parameter"
 msgstr "编辑参数"
 
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:697
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
 msgid "Delete Parameter"
 msgstr "删除参数"
 
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
 msgid "No supplier parts found"
 msgstr "未找到供应商商品"
 
@@ -7320,10 +7354,8 @@ msgid "View operation not allowed"
 msgstr ""
 
 #: templates/js/translated/forms.js:679
-#, fuzzy
-#| msgid "Must be a valid number"
 msgid "Enter a valid number"
-msgstr "必须是有效数字"
+msgstr ""
 
 #: templates/js/translated/forms.js:1071 templates/modals.html:19
 #: templates/modals.html:43
@@ -7350,11 +7382,6 @@ msgstr ""
 msgid "NO"
 msgstr ""
 
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr "选择库存项"
-
 #: templates/js/translated/label.js:30
 msgid "Stock item(s) must be selected before printing labels"
 msgstr "打印标签前必须选择库存项目"
@@ -7576,15 +7603,13 @@ msgid "Total"
 msgstr ""
 
 #: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
 msgid "Unit Price"
 msgstr "单价"
 
 #: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
-#, fuzzy
-#| msgid "Sale Price"
 msgid "Total Price"
-msgstr "销售价格"
+msgstr ""
 
 #: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
 msgid "Edit line item"
@@ -7654,328 +7679,246 @@ msgstr ""
 msgid "No matching line items"
 msgstr ""
 
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
 msgid "Part Attributes"
 msgstr "商品属性"
 
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
 msgid "Part Creation Options"
 msgstr "商品创建选项"
 
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
 msgid "Part Duplication Options"
 msgstr "商品重复选项"
 
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
 msgid "Supplier Options"
 msgstr ""
 
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
 msgid "Add Part Category"
 msgstr "增加商品类别"
 
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
 msgid "Create Initial Stock"
 msgstr ""
 
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
 msgid "Create an initial stock item for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
 msgid "Initial Stock Quantity"
 msgstr ""
 
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
 msgid "Specify initial stock quantity for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
 msgid "Select destination stock location"
 msgstr ""
 
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
 msgid "Copy Category Parameters"
 msgstr "复制类别参数"
 
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
 msgid "Copy parameter templates from selected part category"
 msgstr ""
 
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
 msgid "Add Supplier Data"
 msgstr ""
 
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
 msgid "Create initial supplier data for this part"
 msgstr ""
 
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
 msgid "Copy Image"
 msgstr ""
 
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
 msgid "Copy image from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
 msgid "Copy bill of materials from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
 msgid "Copy Parameters"
 msgstr ""
 
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
 msgid "Copy parameter data from original part"
 msgstr ""
 
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
 msgid "Parent part category"
 msgstr ""
 
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
 msgid "Edit Part"
 msgstr "编辑商品"
 
-#: templates/js/translated/part.js:334
-#, fuzzy
-#| msgid "Parts imported"
+#: templates/js/translated/part.js:335
 msgid "Part edited"
-msgstr "已导入商品"
+msgstr ""
 
-#: templates/js/translated/part.js:402
+#: templates/js/translated/part.js:403
 msgid "You are subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:404
+#: templates/js/translated/part.js:405
 msgid "You have subscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:409
+#: templates/js/translated/part.js:410
 msgid "Subscribe to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:411
+#: templates/js/translated/part.js:412
 msgid "You have unsubscribed to notifications for this item"
 msgstr ""
 
-#: templates/js/translated/part.js:440 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
 msgid "Trackable part"
 msgstr "可追溯商品"
 
-#: templates/js/translated/part.js:444 templates/js/translated/part.js:529
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
 msgid "Virtual part"
 msgstr "虚拟商品"
 
-#: templates/js/translated/part.js:456
-#, fuzzy
-#| msgid "Starred part"
+#: templates/js/translated/part.js:457
 msgid "Subscribed part"
-msgstr "已标记商品"
+msgstr ""
 
-#: templates/js/translated/part.js:460
+#: templates/js/translated/part.js:461
 msgid "Salable part"
 msgstr "可销售商品"
 
-#: templates/js/translated/part.js:575
+#: templates/js/translated/part.js:576
 msgid "No variants found"
 msgstr ""
 
-#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
 msgid "No parts found"
 msgstr ""
 
-#: templates/js/translated/part.js:933
+#: templates/js/translated/part.js:1026
 msgid "No category"
 msgstr "没有分类"
 
-#: templates/js/translated/part.js:956
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
 msgid "Low stock"
 msgstr ""
 
-#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
 #: templates/js/translated/stock.js:1802
-#, fuzzy
-#| msgid "Display list view"
 msgid "Display as list"
-msgstr "列表视图"
+msgstr ""
 
-#: templates/js/translated/part.js:1044
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1156
 msgid "Display as grid"
-msgstr "列表视图"
+msgstr ""
 
-#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821
-#, fuzzy
-#| msgid "Display list view"
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
 msgid "Display as tree"
-msgstr "列表视图"
+msgstr ""
 
-#: templates/js/translated/part.js:1283
-#, fuzzy
-#| msgid "Set category"
+#: templates/js/translated/part.js:1395
 msgid "Subscribed category"
-msgstr "设置类别"
+msgstr ""
 
-#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
 msgid "Path"
 msgstr ""
 
-#: templates/js/translated/part.js:1341
+#: templates/js/translated/part.js:1453
 msgid "No test templates matching query"
 msgstr ""
 
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
 msgid "Edit test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
 msgid "Delete test result"
 msgstr ""
 
-#: templates/js/translated/part.js:1399
+#: templates/js/translated/part.js:1511
 msgid "This test is defined for a parent part"
 msgstr ""
 
-#: templates/js/translated/part.js:1421
+#: templates/js/translated/part.js:1533
 msgid "Edit Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1435
+#: templates/js/translated/part.js:1547
 msgid "Delete Test Result Template"
 msgstr ""
 
-#: templates/js/translated/part.js:1460
+#: templates/js/translated/part.js:1572
 #, python-brace-format
 msgid "No ${human_name} information found"
 msgstr ""
 
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1627
 #, python-brace-format
 msgid "Edit ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1516
+#: templates/js/translated/part.js:1628
 #, python-brace-format
 msgid "Delete ${human_name}"
 msgstr ""
 
-#: templates/js/translated/part.js:1617
+#: templates/js/translated/part.js:1729
 msgid "Single Price"
 msgstr ""
 
-#: templates/js/translated/part.js:1636
+#: templates/js/translated/part.js:1748
 msgid "Single Price Difference"
 msgstr ""
 
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr "在打印报表之前必须选择库存项目"
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr "没有找到报表"
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr "打印报表前必须选择Build(s)"
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr "打印报表前必须选择商品"
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
 #: templates/js/translated/stock.js:70
-#, fuzzy
-#| msgid "Select Stock Items"
 msgid "Serialize Stock Item"
-msgstr "选择库存项"
+msgstr ""
 
 #: templates/js/translated/stock.js:90
 msgid "Parent stock location"
 msgstr ""
 
 #: templates/js/translated/stock.js:126
-#, fuzzy
-#| msgid "Stock Location"
 msgid "New Stock Location"
-msgstr "仓储地点"
+msgstr ""
 
 #: templates/js/translated/stock.js:189
-#, fuzzy
-#| msgid "Enter quantity for build output"
 msgid "Enter initial quantity for this stock item"
-msgstr "输入生产产出数量"
+msgstr ""
 
 #: templates/js/translated/stock.js:195
-#, fuzzy
-#| msgid "Enter serial numbers for build outputs"
 msgid "Enter serial numbers for new stock (or leave blank)"
-msgstr "输入生产产出的序列号"
+msgstr ""
 
 #: templates/js/translated/stock.js:338
-#, fuzzy
-#| msgid "Create new stock location"
 msgid "Created new stock item"
-msgstr "新建仓储地点"
+msgstr ""
 
 #: templates/js/translated/stock.js:351
-#, fuzzy
-#| msgid "Create initial stock"
 msgid "Created multiple stock items"
-msgstr "创建初始库存"
+msgstr ""
 
 #: templates/js/translated/stock.js:390
 msgid "Export Stock"
@@ -8122,7 +8065,7 @@ msgid "Stock item is destroyed"
 msgstr ""
 
 #: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:183
 msgid "Depleted"
 msgstr ""
 
@@ -8170,10 +8113,6 @@ msgstr ""
 msgid "Invalid date"
 msgstr ""
 
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr "详情"
-
 #: templates/js/translated/stock.js:1944
 msgid "Location no longer exists"
 msgstr ""
@@ -8210,6 +8149,10 @@ msgstr ""
 msgid "No installed items"
 msgstr ""
 
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
 #: templates/js/translated/stock.js:2175
 msgid "Uninstall Stock Item"
 msgstr ""
@@ -8230,180 +8173,180 @@ msgstr ""
 msgid "Allow Variant Stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
 msgid "Include sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:105
+#: templates/js/translated/table_filters.js:111
 msgid "Include locations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:115
-#: templates/js/translated/table_filters.js:116
-#: templates/js/translated/table_filters.js:352
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
 msgid "Include subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:120
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
 msgid "Subscribed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
 msgid "Is Serialized"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:214
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
 msgid "Serial number GTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
 msgid "Serial number greater than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:137
-#: templates/js/translated/table_filters.js:218
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
 msgid "Serial number LTE"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:138
-#: templates/js/translated/table_filters.js:219
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
 msgid "Serial number less than or equal to"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:142
-#: templates/js/translated/table_filters.js:210
-#: templates/js/translated/table_filters.js:211
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
 msgid "Serial number"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:228
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
 msgid "Batch code"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:157
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
 msgid "Active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:158
+#: templates/js/translated/table_filters.js:164
 msgid "Show stock for active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:169
 msgid "Part is an assembly"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:173
 msgid "Is allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:174
 msgid "Item has been allocated"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:173
+#: templates/js/translated/table_filters.js:179
 msgid "Include stock in sublocations"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:184
 msgid "Show stock items which are depleted"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/table_filters.js:189
 msgid "Show items which are in stock"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:193
 msgid "In Production"
 msgstr "正在生产"
 
-#: templates/js/translated/table_filters.js:188
+#: templates/js/translated/table_filters.js:194
 msgid "Show items which are in production"
 msgstr "显示正在生产的项目"
 
-#: templates/js/translated/table_filters.js:192
+#: templates/js/translated/table_filters.js:198
 msgid "Include Variants"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:199
 msgid "Include stock items for variant parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:197
+#: templates/js/translated/table_filters.js:203
 msgid "Installed"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:204
 msgid "Show stock items which are installed in another item"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:209
 msgid "Show items which have been assigned to a customer"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:223
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
 msgid "Stock status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:238
 msgid "Has purchase price"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:239
 msgid "Show stock items which have a purchase price set"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:242
+#: templates/js/translated/table_filters.js:248
 msgid "Show stock items which have expired"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:254
 msgid "Show stock which is close to expiring"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:279
+#: templates/js/translated/table_filters.js:285
 msgid "Build status"
 msgstr "生产状态"
 
-#: templates/js/translated/table_filters.js:307
-#: templates/js/translated/table_filters.js:324
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
 msgid "Order status"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:312
-#: templates/js/translated/table_filters.js:329
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
 msgid "Outstanding"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:353
+#: templates/js/translated/table_filters.js:359
 msgid "Include parts in subcategories"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:357
+#: templates/js/translated/table_filters.js:363
 msgid "Has IPN"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:364
 msgid "Part has internal part number"
 msgstr "商品有内部编号"
 
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:369
 msgid "Show active parts"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:371
+#: templates/js/translated/table_filters.js:377
 msgid "Stock available"
 msgstr ""
 
-#: templates/js/translated/table_filters.js:399
+#: templates/js/translated/table_filters.js:405
 msgid "Purchasable"
 msgstr ""
 
@@ -8668,167 +8611,3 @@ msgstr "编辑项目权限"
 msgid "Permission to delete items"
 msgstr "删除项目权限"
 
-#~ msgid "Build Order reference"
-#~ msgstr "相关生产订单"
-
-#~ msgid "Order target date"
-#~ msgstr "订单预计日期"
-
-#~ msgid "Number of items to build"
-#~ msgstr "要生产的项目数量"
-
-#~ msgid "Confirm unallocation of stock"
-#~ msgstr "确认取消分配库存"
-
-#~ msgid "Build output stock status"
-#~ msgstr "生产产出库存状态"
-
-#~ msgid "Confirm incomplete"
-#~ msgstr "确认未完成"
-
-#~ msgid "Confirm completion with incomplete stock allocation"
-#~ msgstr "确认以未完成库存分配方式完成"
-
-#~ msgid "Confirm build completion"
-#~ msgstr "确认生产完成"
-
-#~ msgid "Admin view"
-#~ msgstr "管理界面"
-
-#~ msgid "Print Build Order"
-#~ msgstr "打印生产订单"
-
-#~ msgid "Progress"
-#~ msgstr "生产进度"
-
-#~ msgid "Stock allocation is incomplete"
-#~ msgstr "库存分配尚未完成"
-
-#~ msgid "Build Order Details"
-#~ msgstr "生产订单详情"
-
-#~ msgid "Build Order Notes"
-#~ msgstr "生产订单备注"
-
-#~ msgid "All incomplete stock allocations will be removed from the build"
-#~ msgstr "所有未完成的库存分配都将从生产中删除"
-
-#~ msgid "Invalid stock status value selected"
-#~ msgstr "选定的库存状态值无效"
-
-#~ msgid "Build output completed"
-#~ msgstr "生产产出已完成"
-
-#~ msgid "Enable buy"
-#~ msgstr "启用采购"
-
-#~ msgid "Enable buy functionality in InvenTree interface"
-#~ msgstr "在 InventTree 界面中启用采购功能"
-
-#~ msgid "Enable sell"
-#~ msgstr "启用销售"
-
-#~ msgid "Enable sell functionality in InvenTree interface"
-#~ msgstr "在 InventTree 界面中启用销售功能"
-
-#~ msgid "Default"
-#~ msgstr "默认"
-
-#~ msgid "Current value"
-#~ msgstr "当前数值"
-
-#~ msgid "Change Setting"
-#~ msgstr "更改设置"
-
-#~ msgid "Supplied value is not allowed"
-#~ msgstr "提供的值不被允许"
-
-#~ msgid "Supplied value must be a boolean"
-#~ msgstr "提供的值必须为布尔值"
-
-#~ msgid "Change User Setting"
-#~ msgstr "更改用户设置"
-
-#~ msgid "Company Details"
-#~ msgstr "公司详细信息"
-
-#~ msgid "Manufacturer Part Details"
-#~ msgstr "制造商商品详细信息"
-
-#~ msgid "Manufacturer Part Stock"
-#~ msgstr "制造商商品库存"
-
-#~ msgid "Manufacturer Part Orders"
-#~ msgstr "制造商商品订单"
-
-#~ msgid "Manufactured Parts"
-#~ msgstr "制造商商品"
-
-#~ msgid "Supplier Part Details"
-#~ msgstr "供应商商品详细信息"
-
-#~ msgid "All parts"
-#~ msgstr "所有商品"
-
-#~ msgid "Category Details"
-#~ msgstr "类别详细信息"
-
-#~ msgid "View list display"
-#~ msgstr "列表视图"
-
-#~ msgid "View grid display"
-#~ msgstr "网格视图"
-
-#~ msgid "Import Parts"
-#~ msgstr "导入商品"
-
-#~ msgid "Star this part"
-#~ msgstr "标记此商品"
-
-#~ msgid "Hide Part Details"
-#~ msgstr "隐藏商品详细信息"
-
-#~ msgid "Location Details"
-#~ msgstr "仓储地详细信息"
-
-#~ msgid "Location Path"
-#~ msgstr "仓储地路径"
-
-#~ msgid "Location Description"
-#~ msgstr "仓储地描述信息"
-
-#~ msgid "Create new location"
-#~ msgstr "新建仓储地点"
-
-#~ msgid "Starred Parts"
-#~ msgstr "已加星标商品"
-
-#~ msgid "Setting"
-#~ msgstr "设置"
-
-#~ msgid "Account"
-#~ msgstr "帐户"
-
-#~ msgid "Home Page"
-#~ msgstr "主页"
-
-#~ msgid "Labels"
-#~ msgstr "标签"
-
-#~ msgid "Reports"
-#~ msgstr "报表"
-
-#~ msgid "Barcodes"
-#~ msgstr "条形码"
-
-#~ msgid "Currencies"
-#~ msgstr "币种"
-
-#~ msgid "Reporting"
-#~ msgstr "报表"
-
-#~ msgid "Categories"
-#~ msgstr "类别管理"
-
-#~ msgid "Part Options"
-#~ msgstr "商品选项"
diff --git a/InvenTree/order/migrations/0053_auto_20211128_0151.py b/InvenTree/order/migrations/0053_auto_20211128_0151.py
new file mode 100644
index 0000000000..bbe029b4af
--- /dev/null
+++ b/InvenTree/order/migrations/0053_auto_20211128_0151.py
@@ -0,0 +1,35 @@
+# Generated by Django 3.2.5 on 2021-11-28 01:51
+
+import InvenTree.fields
+import InvenTree.models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('order', '0052_auto_20211014_0631'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='purchaseorderattachment',
+            name='link',
+            field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'),
+        ),
+        migrations.AddField(
+            model_name='salesorderattachment',
+            name='link',
+            field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'),
+        ),
+        migrations.AlterField(
+            model_name='purchaseorderattachment',
+            name='attachment',
+            field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'),
+        ),
+        migrations.AlterField(
+            model_name='salesorderattachment',
+            name='attachment',
+            field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'),
+        ),
+    ]
diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py
index 9c65c2b038..0528d57596 100644
--- a/InvenTree/order/serializers.py
+++ b/InvenTree/order/serializers.py
@@ -17,16 +17,15 @@ from rest_framework.serializers import ValidationError
 
 from sql_util.utils import SubqueryCount
 
+from common.settings import currency_code_mappings
+from company.serializers import CompanyBriefSerializer, SupplierPartSerializer
+
 from InvenTree.serializers import InvenTreeAttachmentSerializer
 from InvenTree.serializers import InvenTreeModelSerializer
 from InvenTree.serializers import InvenTreeDecimalField
 from InvenTree.serializers import InvenTreeMoneySerializer
-from InvenTree.serializers import InvenTreeAttachmentSerializerField
-
 from InvenTree.status_codes import StockStatus
 
-from company.serializers import CompanyBriefSerializer, SupplierPartSerializer
-
 from part.serializers import PartBriefSerializer
 
 import stock.models
@@ -37,7 +36,7 @@ from .models import PurchaseOrderAttachment, SalesOrderAttachment
 from .models import SalesOrder, SalesOrderLineItem
 from .models import SalesOrderAllocation
 
-from common.settings import currency_code_mappings
+from users.serializers import OwnerSerializer
 
 
 class POSerializer(InvenTreeModelSerializer):
@@ -86,6 +85,8 @@ class POSerializer(InvenTreeModelSerializer):
 
     reference = serializers.CharField(required=True)
 
+    responsible_detail = OwnerSerializer(source='responsible', read_only=True, many=False)
+
     class Meta:
         model = PurchaseOrder
 
@@ -100,6 +101,7 @@ class POSerializer(InvenTreeModelSerializer):
             'overdue',
             'reference',
             'responsible',
+            'responsible_detail',
             'supplier',
             'supplier_detail',
             'supplier_reference',
@@ -374,8 +376,6 @@ class POAttachmentSerializer(InvenTreeAttachmentSerializer):
     Serializers for the PurchaseOrderAttachment model
     """
 
-    attachment = InvenTreeAttachmentSerializerField(required=True)
-
     class Meta:
         model = PurchaseOrderAttachment
 
@@ -383,6 +383,7 @@ class POAttachmentSerializer(InvenTreeAttachmentSerializer):
             'pk',
             'order',
             'attachment',
+            'link',
             'filename',
             'comment',
             'upload_date',
@@ -594,8 +595,6 @@ class SOAttachmentSerializer(InvenTreeAttachmentSerializer):
     Serializers for the SalesOrderAttachment model
     """
 
-    attachment = InvenTreeAttachmentSerializerField(required=True)
-
     class Meta:
         model = SalesOrderAttachment
 
@@ -604,6 +603,7 @@ class SOAttachmentSerializer(InvenTreeAttachmentSerializer):
             'order',
             'attachment',
             'filename',
+            'link',
             'comment',
             'upload_date',
         ]
diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html
index 257707347a..3a6ea090d5 100644
--- a/InvenTree/order/templates/order/purchase_order_detail.html
+++ b/InvenTree/order/templates/order/purchase_order_detail.html
@@ -124,51 +124,16 @@
         }
     );
 
-    loadAttachmentTable(
-        '{% url "api-po-attachment-list" %}',
-        {
-            filters: {
-                order: {{ order.pk }},
-            },
-            onEdit: function(pk) {
-                var url = `/api/order/po/attachment/${pk}/`;
-
-                constructForm(url, {
-                    fields: {
-                        filename: {},
-                        comment: {},
-                    },
-                    onSuccess: reloadAttachmentTable,
-                    title: '{% trans "Edit Attachment" %}',
-                });
-            },
-            onDelete: function(pk) {
-
-                constructForm(`/api/order/po/attachment/${pk}/`, {
-                    method: 'DELETE',
-                    confirmMessage: '{% trans "Confirm Delete Operation" %}',
-                    title: '{% trans "Delete Attachment" %}',
-                    onSuccess: reloadAttachmentTable,
-                });
+    loadAttachmentTable('{% url "api-po-attachment-list" %}', {
+        filters: {
+            order: {{ order.pk }},
+        },
+        fields: {
+            order: {
+                value: {{ order.pk }},
+                hidden: true,
             }
         }
-    );
-
-    $("#new-attachment").click(function() {
-
-        constructForm('{% url "api-po-attachment-list" %}', {
-            method: 'POST',
-            fields: {
-                attachment: {},
-                comment: {},
-                order: {
-                    value: {{ order.pk }},
-                    hidden: true,
-                },
-            },
-            reload: true,
-            title: '{% trans "Add Attachment" %}',
-        });
     });
 
     loadStockTable($("#stock-table"), {
diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html
index 887ecd390c..1cf2ce06cc 100644
--- a/InvenTree/order/templates/order/sales_order_detail.html
+++ b/InvenTree/order/templates/order/sales_order_detail.html
@@ -110,55 +110,21 @@
             },
             label: 'attachment',
             success: function(data, status, xhr) {
-                location.reload();
+                reloadAttachmentTable();
             }
         }
     );
 
-    loadAttachmentTable(
-        '{% url "api-so-attachment-list" %}',
-        {
-            filters: {
-                order: {{ order.pk }},
+    loadAttachmentTable('{% url "api-so-attachment-list" %}', {
+        filters: {
+            order: {{ order.pk }},
+        },
+        fields: {
+            order: {
+                value: {{ order.pk }},
+                hidden: true,
             },
-            onEdit: function(pk) {
-                var url = `/api/order/so/attachment/${pk}/`;
-
-                constructForm(url, {
-                    fields: {
-                        filename: {},
-                        comment: {},
-                    },
-                    onSuccess: reloadAttachmentTable,
-                    title: '{% trans "Edit Attachment" %}',
-                });
-            },
-            onDelete: function(pk) {
-                constructForm(`/api/order/so/attachment/${pk}/`, {
-                    method: 'DELETE',
-                    confirmMessage: '{% trans "Confirm Delete Operation" %}',
-                    title: '{% trans "Delete Attachment" %}',
-                    onSuccess: reloadAttachmentTable,
-                });
-            }
         }
-    );
-
-    $("#new-attachment").click(function() {
-
-        constructForm('{% url "api-so-attachment-list" %}', {
-            method: 'POST',
-            fields: {
-                attachment: {},
-                comment: {},
-                order: {
-                    value: {{ order.pk }},
-                    hidden: true
-                }
-            },
-            onSuccess: reloadAttachmentTable,
-            title: '{% trans "Add Attachment" %}'
-        });
     });
 
     loadBuildTable($("#builds-table"), {
diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py
index 633f46d6e7..403934d3d9 100644
--- a/InvenTree/part/api.py
+++ b/InvenTree/part/api.py
@@ -26,7 +26,7 @@ from djmoney.contrib.exchange.exceptions import MissingRate
 
 from decimal import Decimal, InvalidOperation
 
-from .models import Part, PartCategory
+from .models import Part, PartCategory, PartRelated
 from .models import BomItem, BomItemSubstitute
 from .models import PartParameter, PartParameterTemplate
 from .models import PartAttachment, PartTestTemplate
@@ -42,7 +42,7 @@ from build.models import Build
 
 from . import serializers as part_serializers
 
-from InvenTree.helpers import str2bool, isNull
+from InvenTree.helpers import str2bool, isNull, increment
 from InvenTree.api import AttachmentMixin
 
 from InvenTree.status_codes import BuildStatus
@@ -410,6 +410,33 @@ class PartThumbsUpdate(generics.RetrieveUpdateAPIView):
     ]
 
 
+class PartSerialNumberDetail(generics.RetrieveAPIView):
+    """
+    API endpoint for returning extra serial number information about a particular part
+    """
+
+    queryset = Part.objects.all()
+
+    def retrieve(self, request, *args, **kwargs):
+
+        part = self.get_object()
+
+        # Calculate the "latest" serial number
+        latest = part.getLatestSerialNumber()
+
+        data = {
+            'latest': latest,
+        }
+
+        if latest is not None:
+            next = increment(latest)
+
+            if next != increment:
+                data['next'] = next
+
+        return Response(data)
+
+
 class PartDetail(generics.RetrieveUpdateDestroyAPIView):
     """ API endpoint for detail view of a single Part object """
 
@@ -901,6 +928,40 @@ class PartList(generics.ListCreateAPIView):
 
             queryset = queryset.filter(pk__in=pks)
 
+        # Filter by 'related' parts?
+        related = params.get('related', None)
+        exclude_related = params.get('exclude_related', None)
+
+        if related is not None or exclude_related is not None:
+            try:
+                pk = related if related is not None else exclude_related
+                pk = int(pk)
+
+                related_part = Part.objects.get(pk=pk)
+
+                part_ids = set()
+
+                # Return any relationship which points to the part in question
+                relation_filter = Q(part_1=related_part) | Q(part_2=related_part)
+
+                for relation in PartRelated.objects.filter(relation_filter):
+
+                    if relation.part_1.pk != pk:
+                        part_ids.add(relation.part_1.pk)
+
+                    if relation.part_2.pk != pk:
+                        part_ids.add(relation.part_2.pk)
+
+                if related is not None:
+                    # Only return related results
+                    queryset = queryset.filter(pk__in=[pk for pk in part_ids])
+                elif exclude_related is not None:
+                    # Exclude related results
+                    queryset = queryset.exclude(pk__in=[pk for pk in part_ids])
+
+            except (ValueError, Part.DoesNotExist):
+                pass
+
         # Filter by 'starred' parts?
         starred = params.get('starred', None)
 
@@ -1017,6 +1078,44 @@ class PartList(generics.ListCreateAPIView):
     ]
 
 
+class PartRelatedList(generics.ListCreateAPIView):
+    """
+    API endpoint for accessing a list of PartRelated objects
+    """
+
+    queryset = PartRelated.objects.all()
+    serializer_class = part_serializers.PartRelationSerializer
+
+    def filter_queryset(self, queryset):
+
+        queryset = super().filter_queryset(queryset)
+
+        params = self.request.query_params
+
+        # Add a filter for "part" - we can filter either part_1 or part_2
+        part = params.get('part', None)
+
+        if part is not None:
+            try:
+                part = Part.objects.get(pk=part)
+
+                queryset = queryset.filter(Q(part_1=part) | Q(part_2=part))
+
+            except (ValueError, Part.DoesNotExist):
+                pass
+
+        return queryset
+
+
+class PartRelatedDetail(generics.RetrieveUpdateDestroyAPIView):
+    """
+    API endpoint for accessing detail view of a PartRelated object
+    """
+
+    queryset = PartRelated.objects.all()
+    serializer_class = part_serializers.PartRelationSerializer
+
+
 class PartParameterTemplateList(generics.ListCreateAPIView):
     """ API endpoint for accessing a list of PartParameterTemplate objects.
 
@@ -1081,24 +1180,6 @@ class BomFilter(rest_filters.FilterSet):
     inherited = rest_filters.BooleanFilter(label='BOM line is inherited')
     allow_variants = rest_filters.BooleanFilter(label='Variants are allowed')
 
-    validated = rest_filters.BooleanFilter(label='BOM line has been validated', method='filter_validated')
-
-    def filter_validated(self, queryset, name, value):
-
-        # Work out which lines have actually been validated
-        pks = []
-
-        for bom_item in queryset.all():
-            if bom_item.is_line_valid():
-                pks.append(bom_item.pk)
-
-        if str2bool(value):
-            queryset = queryset.filter(pk__in=pks)
-        else:
-            queryset = queryset.exclude(pk__in=pks)
-
-        return queryset
-
     # Filters for linked 'part'
     part_active = rest_filters.BooleanFilter(label='Master part is active', field_name='part__active')
     part_trackable = rest_filters.BooleanFilter(label='Master part is trackable', field_name='part__trackable')
@@ -1107,6 +1188,30 @@ class BomFilter(rest_filters.FilterSet):
     sub_part_trackable = rest_filters.BooleanFilter(label='Sub part is trackable', field_name='sub_part__trackable')
     sub_part_assembly = rest_filters.BooleanFilter(label='Sub part is an assembly', field_name='sub_part__assembly')
 
+    validated = rest_filters.BooleanFilter(label='BOM line has been validated', method='filter_validated')
+
+    def filter_validated(self, queryset, name, value):
+
+        # Work out which lines have actually been validated
+        pks = []
+
+        value = str2bool(value)
+
+        # Shortcut for quicker filtering - BomItem with empty 'checksum' values are not validated
+        if value:
+            queryset = queryset.exclude(checksum=None).exclude(checksum='')
+
+        for bom_item in queryset.all():
+            if bom_item.is_line_valid:
+                pks.append(bom_item.pk)
+
+        if value:
+            queryset = queryset.filter(pk__in=pks)
+        else:
+            queryset = queryset.exclude(pk__in=pks)
+
+        return queryset
+
 
 class BomList(generics.ListCreateAPIView):
     """
@@ -1435,6 +1540,12 @@ part_api_urls = [
         url(r'^.*$', PartInternalPriceList.as_view(), name='api-part-internal-price-list'),
     ])),
 
+    # Base URL for PartRelated API endpoints
+    url(r'^related/', include([
+        url(r'^(?P<pk>\d+)/', PartRelatedDetail.as_view(), name='api-part-related-detail'),
+        url(r'^.*$', PartRelatedList.as_view(), name='api-part-related-list'),
+    ])),
+
     # Base URL for PartParameter API endpoints
     url(r'^parameter/', include([
         url(r'^template/$', PartParameterTemplateList.as_view(), name='api-part-parameter-template-list'),
@@ -1448,7 +1559,14 @@ part_api_urls = [
         url(r'^(?P<pk>\d+)/?', PartThumbsUpdate.as_view(), name='api-part-thumbs-update'),
     ])),
 
-    url(r'^(?P<pk>\d+)/', PartDetail.as_view(), name='api-part-detail'),
+    url(r'^(?P<pk>\d+)/', include([
+
+        # Endpoint for extra serial number information
+        url(r'^serial-numbers/', PartSerialNumberDetail.as_view(), name='api-part-serial-number-detail'),
+
+        # Part detail endpoint
+        url(r'^.*$', PartDetail.as_view(), name='api-part-detail'),
+    ])),
 
     url(r'^.*$', PartList.as_view(), name='api-part-list'),
 ]
diff --git a/InvenTree/part/forms.py b/InvenTree/part/forms.py
index ddcb78ac2a..609acec917 100644
--- a/InvenTree/part/forms.py
+++ b/InvenTree/part/forms.py
@@ -17,7 +17,7 @@ from InvenTree.fields import RoundingDecimalFormField
 import common.models
 from common.forms import MatchItemForm
 
-from .models import Part, PartCategory, PartRelated
+from .models import Part, PartCategory
 from .models import PartParameterTemplate
 from .models import PartCategoryParameterTemplate
 from .models import PartSellPriceBreak, PartInternalPriceBreak
@@ -157,20 +157,6 @@ class BomMatchItemForm(MatchItemForm):
         return super().get_special_field(col_guess, row, file_manager)
 
 
-class CreatePartRelatedForm(HelperForm):
-    """ Form for creating a PartRelated object """
-
-    class Meta:
-        model = PartRelated
-        fields = [
-            'part_1',
-            'part_2',
-        ]
-        labels = {
-            'part_2': _('Related Part'),
-        }
-
-
 class SetPartCategoryForm(forms.Form):
     """ Form for setting the category of multiple Part objects """
 
diff --git a/InvenTree/part/migrations/0075_auto_20211128_0151.py b/InvenTree/part/migrations/0075_auto_20211128_0151.py
new file mode 100644
index 0000000000..d484a7adce
--- /dev/null
+++ b/InvenTree/part/migrations/0075_auto_20211128_0151.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.2.5 on 2021-11-28 01:51
+
+import InvenTree.fields
+import InvenTree.models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('part', '0074_partcategorystar'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='partattachment',
+            name='link',
+            field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'),
+        ),
+        migrations.AlterField(
+            model_name='partattachment',
+            name='attachment',
+            field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'),
+        ),
+    ]
diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py
index 49460c83a6..1be81c16ba 100644
--- a/InvenTree/part/serializers.py
+++ b/InvenTree/part/serializers.py
@@ -25,7 +25,7 @@ from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus
 from stock.models import StockItem
 
 from .models import (BomItem, BomItemSubstitute,
-                     Part, PartAttachment, PartCategory,
+                     Part, PartAttachment, PartCategory, PartRelated,
                      PartParameter, PartParameterTemplate, PartSellPriceBreak,
                      PartStar, PartTestTemplate, PartCategoryParameterTemplate,
                      PartInternalPriceBreak)
@@ -75,8 +75,6 @@ class PartAttachmentSerializer(InvenTreeAttachmentSerializer):
     Serializer for the PartAttachment class
     """
 
-    attachment = InvenTreeAttachmentSerializerField(required=True)
-
     class Meta:
         model = PartAttachment
 
@@ -85,6 +83,7 @@ class PartAttachmentSerializer(InvenTreeAttachmentSerializer):
             'part',
             'attachment',
             'filename',
+            'link',
             'comment',
             'upload_date',
         ]
@@ -388,6 +387,25 @@ class PartSerializer(InvenTreeModelSerializer):
         ]
 
 
+class PartRelationSerializer(InvenTreeModelSerializer):
+    """
+    Serializer for a PartRelated model
+    """
+
+    part_1_detail = PartSerializer(source='part_1', read_only=True, many=False)
+    part_2_detail = PartSerializer(source='part_2', read_only=True, many=False)
+
+    class Meta:
+        model = PartRelated
+        fields = [
+            'pk',
+            'part_1',
+            'part_1_detail',
+            'part_2',
+            'part_2_detail',
+        ]
+
+
 class PartStarSerializer(InvenTreeModelSerializer):
     """ Serializer for a PartStar object """
 
diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html
index 0d05665f7d..4cf6f5e824 100644
--- a/InvenTree/part/templates/part/detail.html
+++ b/InvenTree/part/templates/part/detail.html
@@ -329,34 +329,8 @@
                 {% include "filter_list.html" with id="related" %}
             </div>
         </div>
-        
-        <table id='table-related-part' class='table table-condensed table-striped' data-toolbar='#related-button-toolbar'>
-            <thead>
-                <tr>
-                    <th data-field='part' data-serachable='true'>{% trans "Part" %}</th>
-                </tr>
-            </thead>
-            <tbody>
-                {% for item in part.get_related_parts %}
-                {% with part_related=item.0 part=item.1 %}
-                    <tr>
-                        <td>
-                            <a class='hover-icon'>
-                                <img class='hover-img-thumb' src='{{ part.get_thumbnail_url }}'>
-                                <img class='hover-img-large' src='{{ part.get_thumbnail_url }}'>
-                            </a>
-                            <a href='/part/{{ part.id }}/'>{{ part }}</a>
-                            <div class='btn-group' style='float: right;'>
-                                {% if roles.part.change %}
-                                <button title='{% trans "Delete" %}' class='btn btn-outline-secondary delete-related-part' url="{% url 'part-related-delete' part_related.id %}" type='button'><span class='fas fa-trash-alt icon-red'/></button>
-                                {% endif %}
-                            </div>
-                        </td>
-                    </tr>
-                {% endwith %}
-                {% endfor %}
-            </tbody>
-        </table>
+
+        <table id='related-parts-table' class='table table-striped table-condensed' data-toolbar='#related-button-toolbar'></table>
     </div>
 </div>
 
@@ -771,15 +745,34 @@
 
     // Load the "related parts" tab
     onPanelLoad("related-parts", function() {
-        $('#table-related-part').inventreeTable({
-        });
+
+        loadRelatedPartsTable(
+            "#related-parts-table",
+            {{ part.pk }}
+        );
 
         $("#add-related-part").click(function() {
-            launchModalForm("{% url 'part-related-create' %}", {
-                data: {
-                    part: {{ part.id }},
+
+            constructForm('{% url "api-part-related-list" %}', {
+                method: 'POST',
+                fields: {
+                    part_1: {
+                        hidden: true,
+                        value: {{ part.pk }},
+                    },
+                    part_2: {
+                        label: '{% trans "Related Part" %}',
+                        filters: {
+                            exclude_id: {{ part.pk }},
+                            exclude_related: {{ part.pk }},
+                        }
+                    }
                 },
-                reload: true,
+                focus: 'part_2',
+                title: '{% trans "Add Related Part" %}',
+                onSuccess: function() {
+                    $('#related-parts-table').bootstrapTable('refresh');
+                }
             });
         });
 
@@ -1006,36 +999,17 @@
     });
 
     onPanelLoad("part-attachments", function() {
-        loadAttachmentTable(
-            '{% url "api-part-attachment-list" %}',
-            {
-                filters: {
-                    part: {{ part.pk }},
-                },
-                onEdit: function(pk) {
-                    var url = `/api/part/attachment/${pk}/`;
-    
-                    constructForm(url, {
-                        fields: {
-                            filename: {},
-                            comment: {},
-                        },
-                        title: '{% trans "Edit Attachment" %}',
-                        onSuccess: reloadAttachmentTable,
-                    });
-                },
-                onDelete: function(pk) {
-                    var url = `/api/part/attachment/${pk}/`;
-    
-                    constructForm(url, {
-                        method: 'DELETE',
-                        confirmMessage: '{% trans "Confirm Delete Operation" %}',
-                        title: '{% trans "Delete Attachment" %}',
-                        onSuccess: reloadAttachmentTable,
-                    });
+        loadAttachmentTable('{% url "api-part-attachment-list" %}', {
+            filters: {
+                part: {{ part.pk }},
+            },
+            fields: {
+                part: {
+                    value: {{ part.pk }},
+                    hidden: true
                 }
             }
-        );
+        });
     
         enableDragAndDrop(
             '#attachment-dropzone',
@@ -1050,26 +1024,6 @@
                 }
             }
         );
-    
-        $("#new-attachment").click(function() {
-    
-            constructForm(
-                '{% url "api-part-attachment-list" %}',
-                {
-                    method: 'POST',
-                    fields: {
-                        attachment: {},
-                        comment: {},
-                        part: {
-                            value: {{ part.pk }},
-                            hidden: true,
-                        }
-                    },
-                    onSuccess: reloadAttachmentTable,
-                    title: '{% trans "Add Attachment" %}',
-                }
-            )
-        });
     });
 
 
diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py
index ba38ffa879..9704734234 100644
--- a/InvenTree/part/test_api.py
+++ b/InvenTree/part/test_api.py
@@ -925,7 +925,46 @@ class BomItemTest(InvenTreeAPITestCase):
             expected_code=200
         )
 
-        print("results:", len(response.data))
+        # Filter by "validated"
+        response = self.get(
+            url,
+            data={
+                'validated': True,
+            },
+            expected_code=200,
+        )
+
+        # Should be zero validated results
+        self.assertEqual(len(response.data), 0)
+
+        # Now filter by "not validated"
+        response = self.get(
+            url,
+            data={
+                'validated': False,
+            },
+            expected_code=200
+        )
+
+        # There should be at least one non-validated item
+        self.assertTrue(len(response.data) > 0)
+
+        # Now, let's validate an item
+        bom_item = BomItem.objects.first()
+
+        bom_item.validate_hash()
+
+        response = self.get(
+            url,
+            data={
+                'validated': True,
+            },
+            expected_code=200
+        )
+
+        # Check that the expected response is returned
+        self.assertEqual(len(response.data), 1)
+        self.assertEqual(response.data[0]['pk'], bom_item.pk)
 
     def test_get_bom_detail(self):
         """
diff --git a/InvenTree/part/test_views.py b/InvenTree/part/test_views.py
index 2995d45811..5b6c460e1b 100644
--- a/InvenTree/part/test_views.py
+++ b/InvenTree/part/test_views.py
@@ -5,7 +5,7 @@ from django.urls import reverse
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Group
 
-from .models import Part, PartRelated
+from .models import Part
 
 
 class PartViewTestCase(TestCase):
@@ -145,36 +145,6 @@ class PartDetailTest(PartViewTestCase):
         self.assertIn('streaming_content', dir(response))
 
 
-class PartRelatedTests(PartViewTestCase):
-
-    def test_valid_create(self):
-        """ test creation of a related part """
-
-        # Test GET view
-        response = self.client.get(reverse('part-related-create'), {'part': 1},
-                                   HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-        self.assertEqual(response.status_code, 200)
-
-        # Test POST view with valid form data
-        response = self.client.post(reverse('part-related-create'), {'part_1': 1, 'part_2': 2},
-                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-        self.assertContains(response, '"form_valid": true', status_code=200)
-
-        # Try to create the same relationship with part_1 and part_2 pks reversed
-        response = self.client.post(reverse('part-related-create'), {'part_1': 2, 'part_2': 1},
-                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-        self.assertContains(response, '"form_valid": false', status_code=200)
-
-        # Try to create part related to itself
-        response = self.client.post(reverse('part-related-create'), {'part_1': 1, 'part_2': 1},
-                                    HTTP_X_REQUESTED_WITH='XMLHttpRequest')
-        self.assertContains(response, '"form_valid": false', status_code=200)
-
-        # Check final count
-        n = PartRelated.objects.all().count()
-        self.assertEqual(n, 1)
-
-
 class PartQRTest(PartViewTestCase):
     """ Tests for the Part QR Code AJAX view """
 
diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py
index 46f8094fff..e5907e15e2 100644
--- a/InvenTree/part/urls.py
+++ b/InvenTree/part/urls.py
@@ -12,10 +12,6 @@ from django.conf.urls import url, include
 
 from . import views
 
-part_related_urls = [
-    url(r'^new/?', views.PartRelatedCreate.as_view(), name='part-related-create'),
-    url(r'^(?P<pk>\d+)/delete/?', views.PartRelatedDelete.as_view(), name='part-related-delete'),
-]
 
 sale_price_break_urls = [
     url(r'^new/', views.PartSalePriceBreakCreate.as_view(), name='sale-price-break-create'),
@@ -96,9 +92,6 @@ part_urls = [
     # Part category
     url(r'^category/', include(category_urls)),
 
-    # Part related
-    url(r'^related-parts/', include(part_related_urls)),
-
     # Part price breaks
     url(r'^sale-price/', include(sale_price_break_urls)),
 
diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py
index 62433084a6..cd9ea6b41a 100644
--- a/InvenTree/part/views.py
+++ b/InvenTree/part/views.py
@@ -30,7 +30,7 @@ import io
 from rapidfuzz import fuzz
 from decimal import Decimal, InvalidOperation
 
-from .models import PartCategory, Part, PartRelated
+from .models import PartCategory, Part
 from .models import PartParameterTemplate
 from .models import PartCategoryParameterTemplate
 from .models import BomItem
@@ -85,75 +85,6 @@ class PartIndex(InvenTreeRoleMixin, ListView):
         return context
 
 
-class PartRelatedCreate(AjaxCreateView):
-    """ View for creating a new PartRelated object
-
-    - The view only makes sense if a Part object is passed to it
-    """
-    model = PartRelated
-    form_class = part_forms.CreatePartRelatedForm
-    ajax_form_title = _("Add Related Part")
-    ajax_template_name = "modal_form.html"
-
-    def get_initial(self):
-        """ Set parent part as part_1 field """
-
-        initials = {}
-
-        part_id = self.request.GET.get('part', None)
-
-        if part_id:
-            try:
-                initials['part_1'] = Part.objects.get(pk=part_id)
-            except (Part.DoesNotExist, ValueError):
-                pass
-
-        return initials
-
-    def get_form(self):
-        """ Create a form to upload a new PartRelated
-
-        - Hide the 'part_1' field (parent part)
-        - Display parts which are not yet related
-        """
-
-        form = super(AjaxCreateView, self).get_form()
-
-        form.fields['part_1'].widget = HiddenInput()
-
-        try:
-            # Get parent part
-            parent_part = self.get_initial()['part_1']
-            # Get existing related parts
-            related_parts = [related_part[1].pk for related_part in parent_part.get_related_parts()]
-
-            # Build updated choice list excluding
-            # - parts already related to parent part
-            # - the parent part itself
-            updated_choices = []
-            for choice in form.fields["part_2"].choices:
-                if (choice[0] not in related_parts) and (choice[0] != parent_part.pk):
-                    updated_choices.append(choice)
-
-            # Update choices for related part
-            form.fields['part_2'].choices = updated_choices
-        except KeyError:
-            pass
-
-        return form
-
-
-class PartRelatedDelete(AjaxDeleteView):
-    """ View for deleting a PartRelated object """
-
-    model = PartRelated
-    ajax_form_title = _("Delete Related Part")
-    context_object_name = "related"
-
-    # Explicit role requirement
-    role_required = 'part.change'
-
-
 class PartSetCategory(AjaxUpdateView):
     """ View for settings the part category for multiple parts at once """
 
diff --git a/InvenTree/stock/migrations/0070_auto_20211128_0151.py b/InvenTree/stock/migrations/0070_auto_20211128_0151.py
new file mode 100644
index 0000000000..a2f6ef322d
--- /dev/null
+++ b/InvenTree/stock/migrations/0070_auto_20211128_0151.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.2.5 on 2021-11-28 01:51
+
+import InvenTree.fields
+import InvenTree.models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stock', '0069_auto_20211109_2347'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='stockitemattachment',
+            name='link',
+            field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'),
+        ),
+        migrations.AlterField(
+            model_name='stockitemattachment',
+            name='attachment',
+            field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'),
+        ),
+    ]
diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py
index 840eb4793e..c74d674275 100644
--- a/InvenTree/stock/serializers.py
+++ b/InvenTree/stock/serializers.py
@@ -420,8 +420,6 @@ class StockItemAttachmentSerializer(InvenTree.serializers.InvenTreeAttachmentSer
 
     user_detail = InvenTree.serializers.UserSerializerBrief(source='user', read_only=True)
 
-    attachment = InvenTree.serializers.InvenTreeAttachmentSerializerField(required=True)
-
     # TODO: Record the uploading user when creating or updating an attachment!
 
     class Meta:
@@ -432,6 +430,7 @@ class StockItemAttachmentSerializer(InvenTree.serializers.InvenTreeAttachmentSer
             'stock_item',
             'attachment',
             'filename',
+            'link',
             'comment',
             'upload_date',
             'user',
diff --git a/InvenTree/stock/templates/stock/item.html b/InvenTree/stock/templates/stock/item.html
index 9bafc2633c..9cc6d85aeb 100644
--- a/InvenTree/stock/templates/stock/item.html
+++ b/InvenTree/stock/templates/stock/item.html
@@ -221,55 +221,16 @@
             }
         );
 
-    loadAttachmentTable(
-        '{% url "api-stock-attachment-list" %}',
-        {
-            filters: {
-                stock_item: {{ item.pk }},
-            },
-            onEdit: function(pk) {
-                var url = `/api/stock/attachment/${pk}/`;
-
-                constructForm(url, {
-                    fields: {
-                        filename: {},
-                        comment: {},
-                    },
-                    title: '{% trans "Edit Attachment" %}',
-                    onSuccess: reloadAttachmentTable 
-                });
-            },
-            onDelete: function(pk) {
-                var url = `/api/stock/attachment/${pk}/`;
-
-                constructForm(url, {
-                    method: 'DELETE',
-                    confirmMessage: '{% trans "Confirm Delete Operation" %}',
-                    title: '{% trans "Delete Attachment" %}',
-                    onSuccess: reloadAttachmentTable,
-                });
+    loadAttachmentTable('{% url "api-stock-attachment-list" %}', {
+        filters: {
+            stock_item: {{ item.pk }},
+        },
+        fields: {
+            stock_item: {
+                value: {{ item.pk }},
+                hidden: true,
             }
         }
-    );
-
-    $("#new-attachment").click(function() {
-
-        constructForm(
-            '{% url "api-stock-attachment-list" %}',
-            {
-                method: 'POST',
-                fields: {
-                    attachment: {},
-                    comment: {},
-                    stock_item: {
-                        value: {{ item.pk }},
-                        hidden: true,
-                    },
-                },
-                reload: true,
-                title: '{% trans "Add Attachment" %}',
-            }
-        );
     });
 
     loadStockTestResultsTable(
diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html
index 0f8d81203a..111007cd71 100644
--- a/InvenTree/stock/templates/stock/item_base.html
+++ b/InvenTree/stock/templates/stock/item_base.html
@@ -433,6 +433,7 @@
 $("#stock-serialize").click(function() {
 
     serializeStockItem({{ item.pk }}, {
+        part: {{ item.part.pk }},
         reload: true,
         data: {
             quantity: {{ item.quantity }},
diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html
index 91202e7c21..cb87c6765b 100644
--- a/InvenTree/templates/InvenTree/settings/settings.html
+++ b/InvenTree/templates/InvenTree/settings/settings.html
@@ -259,18 +259,18 @@ $("#param-table").inventreeTable({
     columns: [
         {
             field: 'pk',
-            title: 'ID',
+            title: '{% trans "ID" %}',
             visible: false,
             switchable: false,
         },
         {
             field: 'name',
-            title: 'Name',
+            title: '{% trans "Name" %}',
             sortable: 'true',
         },
         {
             field: 'units',
-            title: 'Units',
+            title: '{% trans "Units" %}',
             sortable: 'true',
         },
         {
diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html
index d22c89954f..a4c12a9bb0 100644
--- a/InvenTree/templates/InvenTree/settings/user.html
+++ b/InvenTree/templates/InvenTree/settings/user.html
@@ -210,14 +210,14 @@
                 <div class='input-group-append'>
                     <input type="submit" value="{% trans 'Set Language' %}" class="btn btn btn-primary">
                 </div>
-                <p>{% trans "Some languages are not complete" %}
-                {% if ALL_LANG %}
-                . <a href="{% url 'settings' %}">{% trans "Show only sufficent" %}</a>
-                {% else %}
-                and hidden. <a href="?alllang">{% trans "Show them too" %}</a>
-                {% endif %}
-                </p>
             </div>
+            <p>{% trans "Some languages are not complete" %}
+            {% if ALL_LANG %}
+            . <a href="{% url 'settings' %}">{% trans "Show only sufficent" %}</a>
+            {% else %}
+            {% trans "and hidden." %} <a href="?alllang">{% trans "Show them too" %}</a>
+            {% endif %}
+            </p>
     </form>
     </div>
     <div class="col-sm-6">
diff --git a/InvenTree/templates/attachment_button.html b/InvenTree/templates/attachment_button.html
index e1561010c0..d220f4829d 100644
--- a/InvenTree/templates/attachment_button.html
+++ b/InvenTree/templates/attachment_button.html
@@ -1,5 +1,8 @@
 {% load i18n %}
 
+<button type='button' class='btn btn-outline-success' id='new-attachment-link'>
+    <span class='fas fa-link'></span> {% trans "Add Link" %}
+</button>
 <button type='button' class='btn btn-success' id='new-attachment'>
     <span class='fas fa-plus-circle'></span> {% trans "Add Attachment" %}
 </button>
\ No newline at end of file
diff --git a/InvenTree/templates/js/translated/api.js b/InvenTree/templates/js/translated/api.js
index 735ce0a676..d9c23f035f 100644
--- a/InvenTree/templates/js/translated/api.js
+++ b/InvenTree/templates/js/translated/api.js
@@ -54,6 +54,7 @@ function inventreeGet(url, filters={}, options={}) {
         data: filters,
         dataType: 'json',
         contentType: 'application/json',
+        async: (options.async == false) ? false : true,
         success: function(response) {
             if (options.success) {
                 options.success(response);
diff --git a/InvenTree/templates/js/translated/attachment.js b/InvenTree/templates/js/translated/attachment.js
index 5ff5786588..5c5af5682f 100644
--- a/InvenTree/templates/js/translated/attachment.js
+++ b/InvenTree/templates/js/translated/attachment.js
@@ -6,10 +6,57 @@
 */
 
 /* exported
+    addAttachmentButtonCallbacks,
     loadAttachmentTable,
     reloadAttachmentTable,
 */
 
+
+/*
+ * Add callbacks to buttons for creating new attachments.
+ * 
+ * Note: Attachments can also be external links!
+ */
+function addAttachmentButtonCallbacks(url, fields={}) {
+
+    // Callback for 'new attachment' button
+    $('#new-attachment').click(function() {
+
+        var file_fields = {
+            attachment: {},
+            comment: {},
+        };
+
+        Object.assign(file_fields, fields);
+
+        constructForm(url, {
+            fields: file_fields,
+            method: 'POST',
+            onSuccess: reloadAttachmentTable,
+            title: '{% trans "Add Attachment" %}',
+        });
+    });
+
+    // Callback for 'new link' button
+    $('#new-attachment-link').click(function() {
+
+        var link_fields = {
+            link: {},
+            comment: {},
+        };
+
+        Object.assign(link_fields, fields);
+        
+        constructForm(url, {
+            fields: link_fields,
+            method: 'POST',
+            onSuccess: reloadAttachmentTable,
+            title: '{% trans "Add Link" %}',
+        });
+    });
+}
+
+
 function reloadAttachmentTable() {
 
     $('#attachment-table').bootstrapTable('refresh');
@@ -20,6 +67,8 @@ function loadAttachmentTable(url, options) {
 
     var table = options.table || '#attachment-table';
 
+    addAttachmentButtonCallbacks(url, options.fields || {});
+
     $(table).inventreeTable({
         url: url,
         name: options.name || 'attachments',
@@ -34,56 +83,77 @@ function loadAttachmentTable(url, options) {
             $(table).find('.button-attachment-edit').click(function() {
                 var pk = $(this).attr('pk');
 
-                if (options.onEdit) {
-                    options.onEdit(pk);
-                }
+                constructForm(`${url}${pk}/`, {
+                    fields: {
+                        link: {},
+                        comment: {}, 
+                    },
+                    processResults: function(data, fields, opts) {
+                        // Remove the "link" field if the attachment is a file!
+                        if (data.attachment) {
+                            delete opts.fields.link;
+                        }
+                    },
+                    onSuccess: reloadAttachmentTable,
+                    title: '{% trans "Edit Attachment" %}',
+                });
             });
             
             // Add callback for 'delete' button
             $(table).find('.button-attachment-delete').click(function() {
                 var pk = $(this).attr('pk');
 
-                if (options.onDelete) {
-                    options.onDelete(pk);
-                }
+                constructForm(`${url}${pk}/`, {
+                    method: 'DELETE',
+                    confirmMessage: '{% trans "Confirm Delete" %}',
+                    title: '{% trans "Delete Attachment" %}',
+                    onSuccess: reloadAttachmentTable,
+                });
             });
         },
         columns: [
             {
                 field: 'attachment',
-                title: '{% trans "File" %}',
-                formatter: function(value) {
+                title: '{% trans "Attachment" %}',
+                formatter: function(value, row) {
 
-                    var icon = 'fa-file-alt';
+                    if (row.attachment) {
+                        var icon = 'fa-file-alt';
 
-                    var fn = value.toLowerCase();
+                        var fn = value.toLowerCase();
 
-                    if (fn.endsWith('.csv')) {
-                        icon = 'fa-file-csv';
-                    } else if (fn.endsWith('.pdf')) {
-                        icon = 'fa-file-pdf';
-                    } else if (fn.endsWith('.xls') || fn.endsWith('.xlsx')) {
-                        icon = 'fa-file-excel';
-                    } else if (fn.endsWith('.doc') || fn.endsWith('.docx')) {
-                        icon = 'fa-file-word';
-                    } else if (fn.endsWith('.zip') || fn.endsWith('.7z')) {
-                        icon = 'fa-file-archive';
+                        if (fn.endsWith('.csv')) {
+                            icon = 'fa-file-csv';
+                        } else if (fn.endsWith('.pdf')) {
+                            icon = 'fa-file-pdf';
+                        } else if (fn.endsWith('.xls') || fn.endsWith('.xlsx')) {
+                            icon = 'fa-file-excel';
+                        } else if (fn.endsWith('.doc') || fn.endsWith('.docx')) {
+                            icon = 'fa-file-word';
+                        } else if (fn.endsWith('.zip') || fn.endsWith('.7z')) {
+                            icon = 'fa-file-archive';
+                        } else {
+                            var images = ['.png', '.jpg', '.bmp', '.gif', '.svg', '.tif'];
+
+                            images.forEach(function(suffix) {
+                                if (fn.endsWith(suffix)) {
+                                    icon = 'fa-file-image';
+                                }
+                            });
+                        }
+
+                        var split = value.split('/');
+                        var filename = split[split.length - 1];
+
+                        var html = `<span class='fas ${icon}'></span> ${filename}`;
+
+                        return renderLink(html, value);
+                    } else if (row.link) {
+                        var html = `<span class='fas fa-link'></span> ${row.link}`;
+                        return renderLink(html, row.link);
                     } else {
-                        var images = ['.png', '.jpg', '.bmp', '.gif', '.svg', '.tif'];
-
-                        images.forEach(function(suffix) {
-                            if (fn.endsWith(suffix)) {
-                                icon = 'fa-file-image';
-                            }
-                        });
+                        return '-';
                     }
-
-                    var split = value.split('/');
-                    var filename = split[split.length - 1];
-
-                    var html = `<span class='fas ${icon}'></span> ${filename}`;
-
-                    return renderLink(html, value);
                 }
             },
             {
diff --git a/InvenTree/templates/js/translated/bom.js b/InvenTree/templates/js/translated/bom.js
index 1885624dd8..3cde5bca61 100644
--- a/InvenTree/templates/js/translated/bom.js
+++ b/InvenTree/templates/js/translated/bom.js
@@ -192,6 +192,7 @@ function bomSubstitutesDialog(bom_item_id, substitutes, options={}) {
                 </a>
             </td>
             <td id='description-${pk}'><em>${part.description}</em></td>
+            <td id='stock-${pk}'><em>${part.stock}</em></td>
             <td>${buttons}</td>
         </tr>
         `;
@@ -212,6 +213,7 @@ function bomSubstitutesDialog(bom_item_id, substitutes, options={}) {
             <tr>
                 <th>{% trans "Part" %}</th>
                 <th>{% trans "Description" %}</th>
+                <th>{% trans "Stock" %}</th>
                 <th><!-- Actions --></th>
             </tr>
         </thead>
diff --git a/InvenTree/templates/js/translated/company.js b/InvenTree/templates/js/translated/company.js
index 0e71ad99b1..4ab7a7fa3d 100644
--- a/InvenTree/templates/js/translated/company.js
+++ b/InvenTree/templates/js/translated/company.js
@@ -124,6 +124,7 @@ function supplierPartFields() {
                 part_detail: true,
                 manufacturer_detail: true,
             },
+            auto_fill: true,
         },
         description: {},
         link: {
diff --git a/InvenTree/templates/js/translated/filters.js b/InvenTree/templates/js/translated/filters.js
index 227fbb8009..7ae8c3e4b4 100644
--- a/InvenTree/templates/js/translated/filters.js
+++ b/InvenTree/templates/js/translated/filters.js
@@ -273,7 +273,7 @@ function setupFilterList(tableKey, table, target) {
 
     var element = $(target);
 
-    if (!element) {
+    if (!element || !element.exists()) {
         console.log(`WARNING: setupFilterList could not find target '${target}'`);
         return;
     }
diff --git a/InvenTree/templates/js/translated/forms.js b/InvenTree/templates/js/translated/forms.js
index fd1668cc77..5af85d382e 100644
--- a/InvenTree/templates/js/translated/forms.js
+++ b/InvenTree/templates/js/translated/forms.js
@@ -28,6 +28,7 @@
     disableFormInput,
     enableFormInput,
     hideFormInput,
+    setFormInputPlaceholder,
     setFormGroupVisibility,
     showFormInput,
 */
@@ -1276,6 +1277,11 @@ function initializeGroups(fields, options) {
     }
 }
 
+// Set the placeholder value for a field
+function setFormInputPlaceholder(name, placeholder, options) {
+    $(options.modal).find(`#id_${name}`).attr('placeholder', placeholder);
+}
+
 // Clear a form input
 function clearFormInput(name, options) {
     updateFieldValue(name, null, {}, options);
diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js
index b0e3009720..c61722858d 100644
--- a/InvenTree/templates/js/translated/order.js
+++ b/InvenTree/templates/js/translated/order.js
@@ -695,6 +695,23 @@ function loadPurchaseOrderTable(table, options) {
                 title: '{% trans "Items" %}',
                 sortable: true,
             },
+            {
+                field: 'responsible',
+                title: '{% trans "Responsible" %}',
+                switchable: true,
+                sortable: false,
+                formatter: function(value, row) {
+                    var html = row.responsible_detail.name;
+
+                    if (row.responsible_detail.label == 'group') {
+                        html += `<span class='float-right fas fa-users'></span>`;
+                    } else {
+                        html += `<span class='float-right fas fa-user'></span>`;
+                    }
+
+                    return html;
+                }
+            },
         ],
     });
 }
diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js
index 89e09a314e..1bf025b629 100644
--- a/InvenTree/templates/js/translated/part.js
+++ b/InvenTree/templates/js/translated/part.js
@@ -32,6 +32,7 @@
     loadPartTable,
     loadPartTestTemplateTable,
     loadPartVariantTable,
+    loadRelatedPartsTable,
     loadSellPricingChart,
     loadSimplePartTable,
     loadStockPricingChart,
@@ -705,6 +706,97 @@ function loadPartParameterTable(table, url, options) {
 }
 
 
+function loadRelatedPartsTable(table, part_id, options={}) {
+    /*
+     * Load table of "related" parts
+     */
+
+    options.params = options.params || {};
+
+    options.params.part = part_id;
+
+    var filters = {};
+
+    for (var key in options.params) {
+        filters[key] = options.params[key];
+    }
+
+    setupFilterList('related', $(table), options.filterTarget);
+
+    function getPart(row) {
+        if (row.part_1 == part_id) {
+            return row.part_2_detail;
+        } else {
+            return row.part_1_detail;
+        }
+    }
+
+    var columns = [
+        {
+            field: 'name',
+            title: '{% trans "Part" %}',
+            switchable: false,
+            formatter: function(value, row) {
+
+                var part = getPart(row);
+
+                var html = imageHoverIcon(part.thumbnail) + renderLink(part.full_name, `/part/${part.pk}/`);
+
+                html += makePartIcons(part);
+
+                return html;
+            }
+        },
+        {
+            field: 'description',
+            title: '{% trans "Description" %}',
+            formatter: function(value, row) {
+                return getPart(row).description;
+            }
+        },
+        {
+            field: 'actions',
+            title: '',
+            switchable: false,
+            formatter: function(value, row) {
+                
+                var html = `<div class='btn-group float-right' role='group'>`;
+
+                html += makeIconButton('fa-trash-alt icon-red', 'button-related-delete', row.pk, '{% trans "Delete part relationship" %}');
+
+                html += '</div>';
+
+                return html;
+            }
+        }
+    ];
+
+    $(table).inventreeTable({
+        url: '{% url "api-part-related-list" %}',
+        groupBy: false,
+        name: 'related',
+        original: options.params,
+        queryParams: filters,
+        columns: columns,
+        showColumns: false,
+        search: true,
+        onPostBody: function() {
+            $(table).find('.button-related-delete').click(function() {
+                var pk = $(this).attr('pk');
+
+                constructForm(`/api/part/related/${pk}/`, {
+                    method: 'DELETE',
+                    title: '{% trans "Delete Part Relationship" %}',
+                    onSuccess: function() {
+                        $(table).bootstrapTable('refresh');
+                    }
+                });
+            });
+        },
+    });
+}
+
+
 function loadParametricPartTable(table, options={}) {
     /* Load parametric table for part parameters
      * 
@@ -836,6 +928,7 @@ function loadPartTable(table, url, options={}) {
      *      query: extra query params for API request
      *      buttons: If provided, link buttons to selection status of this table
      *      disableFilters: If true, disable custom filters
+     *      actions: Provide a callback function to construct an "actions" column
      */
 
     // Ensure category detail is included
@@ -878,7 +971,7 @@ function loadPartTable(table, url, options={}) {
 
     col = {
         field: 'IPN',
-        title: 'IPN',
+        title: '{% trans "IPN" %}',
     };
 
     if (!options.params.ordering) {
@@ -895,7 +988,7 @@ function loadPartTable(table, url, options={}) {
 
             var name = row.full_name;
 
-            var display = imageHoverIcon(row.thumbnail) + renderLink(name, '/part/' + row.pk + '/');
+            var display = imageHoverIcon(row.thumbnail) + renderLink(name, `/part/${row.pk}/`);
 
             display += makePartIcons(row);
 
@@ -993,6 +1086,21 @@ function loadPartTable(table, url, options={}) {
         }
     });
 
+    // Push an "actions" column
+    if (options.actions) {
+        columns.push({
+            field: 'actions',
+            title: '',
+            switchable: false,
+            visible: true,
+            searchable: false,
+            sortable: false,
+            formatter: function(value, row) {
+                return options.actions(value, row);
+            }
+        });
+    }
+
     var grid_view = options.gridView && inventreeLoad('part-grid-view') == 1;
 
     $(table).inventreeTable({
@@ -1020,6 +1128,10 @@ function loadPartTable(table, url, options={}) {
                 $('#view-part-grid').removeClass('btn-secondary').addClass('btn-outline-secondary');
                 $('#view-part-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
             }
+
+            if (options.onPostBody) {
+                options.onPostBody();
+            }
         },
         buttons: options.gridView ? [
             {
diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js
index ba4238e6f7..5e92299f03 100644
--- a/InvenTree/templates/js/translated/stock.js
+++ b/InvenTree/templates/js/translated/stock.js
@@ -80,6 +80,20 @@ function serializeStockItem(pk, options={}) {
         notes: {},
     };
 
+    if (options.part) {
+        // Work out the next available serial number
+        inventreeGet(`/api/part/${options.part}/serial-numbers/`, {}, {
+            success: function(data) {
+                if (data.next) {
+                    options.fields.serial_numbers.placeholder = `{% trans "Next available serial number" %}: ${data.next}`;
+                } else if (data.latest) {
+                    options.fields.serial_numbers.placeholder = `{% trans "Latest serial number" %}: ${data.latest}`;
+                }
+            },
+            async: false,
+        });
+    }
+
     constructForm(url, options);
 }
 
@@ -144,10 +158,26 @@ function stockItemFields(options={}) {
                     // If a "trackable" part is selected, enable serial number field
                     if (data.trackable) {
                         enableFormInput('serial_numbers', opts);
-                        // showFormInput('serial_numbers', opts);
+
+                        // Request part serial number information from the server
+                        inventreeGet(`/api/part/${data.pk}/serial-numbers/`, {}, {
+                            success: function(data) {
+                                var placeholder = '';
+                                if (data.next) {
+                                    placeholder = `{% trans "Next available serial number" %}: ${data.next}`;
+                                } else if (data.latest) {
+                                    placeholder = `{% trans "Latest serial number" %}: ${data.latest}`;
+                                }
+
+                                setFormInputPlaceholder('serial_numbers', placeholder, opts);
+                            }
+                        });
+
                     } else {
                         clearFormInput('serial_numbers', opts);
                         disableFormInput('serial_numbers', opts);
+
+                        setFormInputPlaceholder('serial_numbers', '{% trans "This part cannot be serialized" %}', opts);
                     }
 
                     // Enable / disable fields based on purchaseable status
@@ -1101,7 +1131,7 @@ function loadStockTable(table, options) {
 
     col = {
         field: 'part_detail.IPN',
-        title: 'IPN',
+        title: '{% trans "IPN" %}',
         sortName: 'part__IPN',
         visible: params['part_detail'],
         switchable: params['part_detail'],
diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js
index 903774f8e5..409192f74d 100644
--- a/InvenTree/templates/js/translated/table_filters.js
+++ b/InvenTree/templates/js/translated/table_filters.js
@@ -74,6 +74,12 @@ function getAvailableTableFilters(tableKey) {
         };
     }
 
+    // Filters for the "related parts" table
+    if (tableKey == 'related') {
+        return {
+        };
+    }
+
     // Filters for the "used in" table
     if (tableKey == 'usedin') {
         return {
diff --git a/docker/init.sh b/docker/init.sh
index b598a3ee79..7622806d0f 100644
--- a/docker/init.sh
+++ b/docker/init.sh
@@ -38,5 +38,8 @@ fi
 
 cd ${INVENTREE_HOME}
 
+# Collect translation file stats
+invoke translate-stats
+
 # Launch the CMD *after* the ENTRYPOINT completes
 exec "$@"
diff --git a/tasks.py b/tasks.py
index b33af84384..21f7616d76 100644
--- a/tasks.py
+++ b/tasks.py
@@ -3,6 +3,8 @@
 import os
 import json
 import sys
+import pathlib
+import re
 
 try:
     from invoke import ctask as task
@@ -469,6 +471,75 @@ def server(c, address="127.0.0.1:8000"):
     manage(c, "runserver {address}".format(address=address), pty=True)
 
 
+@task(post=[translate_stats, static, server])
+def test_translations(c):
+    """
+    Add a fictional language to test if each component is ready for translations
+    """
+    import django
+    from django.conf import settings
+
+    # setup django
+    base_path = os.getcwd()
+    new_base_path = pathlib.Path('InvenTree').absolute()
+    sys.path.append(str(new_base_path))
+    os.chdir(new_base_path)
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'InvenTree.settings')
+    django.setup()
+
+    # Add language
+    print("Add dummy language...")
+    print("========================================")
+    manage(c, "makemessages -e py,html,js --no-wrap -l xx")
+
+    # change translation
+    print("Fill in dummy translations...")
+    print("========================================")
+
+    file_path = pathlib.Path(settings.LOCALE_PATHS[0], 'xx', 'LC_MESSAGES', 'django.po')
+    new_file_path = str(file_path) + '_new'
+
+    # complie regex
+    reg = re.compile(
+        r"[a-zA-Z0-9]{1}"+  # match any single letter and number
+        r"(?![^{\(\<]*[}\)\>])"+  # that is not inside curly brackets, brackets or a tag
+        r"(?<![^\%][^\(][)][a-z])"+  # that is not a specially formatted variable with singles
+        r"(?![^\\][\n])"  # that is not a newline
+    )
+    last_string = ''
+
+    # loop through input file lines
+    with open(file_path, "rt") as file_org:
+        with open(new_file_path, "wt") as file_new:
+            for line in file_org:
+                if line.startswith('msgstr "'):
+                    # write output -> replace regex matches with x in the read in (multi)string
+                    file_new.write(f'msgstr "{reg.sub("x", last_string[7:-2])}"\n')
+                    last_string = ""  # reset (multi)string
+                elif line.startswith('msgid "'):
+                    last_string = last_string + line  # a new translatable string starts -> start append
+                    file_new.write(line)
+                else:
+                    if last_string:
+                        last_string = last_string + line  # a string is beeing read in -> continue appending
+                    file_new.write(line)
+
+    # change out translation files
+    os.rename(file_path, str(file_path) + '_old')
+    os.rename(new_file_path, file_path)
+
+    # compile languages
+    print("Compile languages ...")
+    print("========================================")
+    manage(c, "compilemessages")
+
+    # reset cwd
+    os.chdir(base_path)
+
+    # set env flag
+    os.environ['TEST_TRANSLATIONS'] = 'True'
+
+
 @task
 def render_js_files(c):
     """