diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po
index 36ef2e9426..8dece7d55b 100644
--- a/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API endpoint nebyl nalezen"
@@ -25,11 +25,11 @@ msgstr "API endpoint nebyl nalezen"
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Zadejte datum"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Potvrzení emailové adresy"
msgid "You must type the same email each time."
msgstr "Pokaždé musíte zadat stejný email."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Duplicitní výrobní číslo: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Vyplněno neplatné množství"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Nevyplněné výrobní číslo"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Neplatná skupina: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Neplatná/nevyplněná skupina {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Nenalezena žádná výrobní čísla"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Čeština"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Němčina"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Řečtina"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Angličtina"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Španělština"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Španělština (Mexiko)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Farsi / Perština"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Francouzština"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hebrejština"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Maďarština"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italština"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japonština"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Korejština"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Nizozemština"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norština"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polština"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Ruština"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Švédština"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thajština"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Turečtina"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamština"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Čínština"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 522e9ac231..81109a9b6b 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API-Endpunkt nicht gefunden"
@@ -25,11 +25,11 @@ msgstr "API-Endpunkt nicht gefunden"
msgid "Error details can be found in the admin panel"
msgstr "Fehlerdetails finden Sie im Admin-Panel"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Datum eingeben"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Bestätigung der E-Mail Adresse"
msgid "You must type the same email each time."
msgstr "E-Mail Adressen müssen übereinstimmen."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr "Verbindungsfehler"
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr "Server antwortete mit ungültigem Statuscode"
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr "Ausnahme aufgetreten"
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr "Bild ist zu groß"
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr "Bilddownload überschreitet maximale Größe"
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr "Remote-Server gab leere Antwort zurück"
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Doppelte Seriennummer: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Keine Seriennummer angegeben"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ungültiger Gruppenbereich: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ungültige Gruppe: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ungültige Gruppensequenz: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ungültige/Keine Gruppe {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
@@ -398,99 +398,99 @@ msgstr "URL der Remote-Bilddatei"
msgid "Downloading images from remote URL is not enabled"
msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert"
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Tschechisch"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Persisch"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Ungarisch"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugiesisch (Brasilien)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Chinesisch"
@@ -5516,11 +5516,11 @@ msgstr "Neue Teilevariante anlegen"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index eea6e139c9..8695c2a2da 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr ""
@@ -25,11 +25,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index cdb0d4d84f..988374f9ab 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: 2022-08-04 00:21+0000\n"
+"POT-Creation-Date: 2022-08-07 12:49+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -26,11 +26,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -90,76 +90,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:557
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:564 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:567
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:599
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:602
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:630
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:638
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:644
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:648
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -230,12 +230,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1636
-#: common/models.py:1637 common/models.py:1860 common/models.py:1861
-#: common/models.py:2123 common/models.py:2124 part/models.py:2193
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646
+#: common/models.py:1647 common/models.py:1870 common/models.py:1871
+#: common/models.py:2133 common/models.py:2134 part/models.py:2193
#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2573
+#: templates/js/translated/stock.js:2632
msgid "User"
msgstr ""
@@ -272,7 +272,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1846
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856
#: company/models.py:358 label/models.py:101 part/models.py:739
#: part/models.py:2371 plugin/models.py:93 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
@@ -284,7 +284,7 @@ msgstr ""
#: templates/js/translated/company.js:758
#: templates/js/translated/notification.js:71
#: templates/js/translated/part.js:684 templates/js/translated/part.js:836
-#: templates/js/translated/part.js:1858 templates/js/translated/stock.js:2344
+#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
@@ -305,9 +305,9 @@ msgstr ""
#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531
#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1877
-#: templates/js/translated/part.js:1946 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2356 templates/js/translated/stock.js:2410
+#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933
+#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469
msgid "Description"
msgstr ""
@@ -320,7 +320,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1883 templates/js/translated/stock.js:2362
+#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421
msgid "Path"
msgstr ""
@@ -399,99 +399,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -800,8 +800,8 @@ msgstr ""
#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206
#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582
#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954
-#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2436
-#: templates/js/translated/stock.js:2631 templates/js/translated/stock.js:2765
+#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824
msgid "Part"
msgstr ""
@@ -989,7 +989,7 @@ msgstr ""
#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193
#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380
#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2568
msgid "Stock Item"
msgstr ""
@@ -999,7 +999,7 @@ msgstr ""
#: build/models.py:1330 build/serializers.py:193
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1668
+#: build/templates/build/detail.html:34 common/models.py:1678
#: company/templates/company/supplier_part.html:279 order/models.py:897
#: order/models.py:1423 order/serializers.py:1155
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
@@ -1026,11 +1026,11 @@ msgstr ""
#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207
#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386
#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037
-#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2091
-#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2356
-#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:454
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147
+#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412
+#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454
#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778
-#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2643
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702
msgid "Quantity"
msgstr ""
@@ -1104,7 +1104,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:278 stock/api.py:569
+#: build/serializers.py:278 stock/api.py:577
msgid "The following serial numbers already exist"
msgstr ""
@@ -1123,7 +1123,7 @@ msgstr ""
#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584
#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956
-#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2450
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509
msgid "Location"
msgstr ""
@@ -1137,7 +1137,7 @@ msgstr ""
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505
#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724
#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825
-#: templates/js/translated/stock.js:2527 templates/js/translated/stock.js:2659
+#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718
msgid "Status"
msgstr ""
@@ -1448,7 +1448,7 @@ msgstr ""
#: templates/js/translated/build.js:1182
#: templates/js/translated/model_renderers.js:124
#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2725
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
@@ -1759,821 +1759,829 @@ msgstr ""
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:880 templates/InvenTree/settings/sidebar.html:33
-msgid "Barcode Support"
+#: common/models.py:880
+msgid "Tree Depth"
msgstr ""
#: common/models.py:881
+msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
+msgstr ""
+
+#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:891
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:887
+#: common/models.py:897
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:888
+#: common/models.py:898
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:894
+#: common/models.py:904
msgid "IPN Regex"
msgstr ""
-#: common/models.py:895
+#: common/models.py:905
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:899
+#: common/models.py:909
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:900
+#: common/models.py:910
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:906
+#: common/models.py:916
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:907
+#: common/models.py:917
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:913
+#: common/models.py:923
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:914
+#: common/models.py:924
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:920
+#: common/models.py:930
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:921
+#: common/models.py:931
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:927
+#: common/models.py:937
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:928
+#: common/models.py:938
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:934
+#: common/models.py:944
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:935
+#: common/models.py:945
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:941 part/models.py:2412 report/models.py:158
+#: common/models.py:951 part/models.py:2412 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
msgstr ""
-#: common/models.py:942
+#: common/models.py:952
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:948 part/models.py:887 templates/js/translated/bom.js:1448
+#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
msgstr ""
-#: common/models.py:949
+#: common/models.py:959
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:955 part/models.py:893
+#: common/models.py:965 part/models.py:893
#: templates/js/translated/table_filters.js:455
msgid "Component"
msgstr ""
-#: common/models.py:956
+#: common/models.py:966
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:962 part/models.py:904
+#: common/models.py:972 part/models.py:904
msgid "Purchaseable"
msgstr ""
-#: common/models.py:963
+#: common/models.py:973
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:969 part/models.py:909
+#: common/models.py:979 part/models.py:909
#: templates/js/translated/table_filters.js:476
msgid "Salable"
msgstr ""
-#: common/models.py:970
+#: common/models.py:980
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:976 part/models.py:899
+#: common/models.py:986 part/models.py:899
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:108
#: templates/js/translated/table_filters.js:488
msgid "Trackable"
msgstr ""
-#: common/models.py:977
+#: common/models.py:987
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:983 part/models.py:919
+#: common/models.py:993 part/models.py:919
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
#: templates/js/translated/table_filters.js:492
msgid "Virtual"
msgstr ""
-#: common/models.py:984
+#: common/models.py:994
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:990
+#: common/models.py:1000
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:991
+#: common/models.py:1001
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:997
+#: common/models.py:1007
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:998
+#: common/models.py:1008
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1019
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1020
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:1031
msgid "Show Price History"
msgstr ""
-#: common/models.py:1022
+#: common/models.py:1032
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:1038
msgid "Show related parts"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:1039
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Create initial stock"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1043
+#: common/models.py:1053
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1049
+#: common/models.py:1059
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1060
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1066
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1067
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1064
+#: common/models.py:1074
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:1075
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1071
+#: common/models.py:1081
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1091
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1092
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1088 templates/stats.html:25
+#: common/models.py:1098 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1099
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1105
msgid "Page Size"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1116
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1107
+#: common/models.py:1117
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1113
+#: common/models.py:1123
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1134
+#: common/models.py:1144
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1141
+#: common/models.py:1151
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1153
msgid "days"
msgstr ""
-#: common/models.py:1148
+#: common/models.py:1158
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1149
+#: common/models.py:1159
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1165
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1166
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1172
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1163
+#: common/models.py:1173
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1179
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1170
+#: common/models.py:1180
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1176
+#: common/models.py:1186
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1177
+#: common/models.py:1187
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1183
+#: common/models.py:1193
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1184
+#: common/models.py:1194
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1191
+#: common/models.py:1201
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1192
+#: common/models.py:1202
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1208
msgid "Enable registration"
msgstr ""
-#: common/models.py:1199
+#: common/models.py:1209
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1215
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1216
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1212
+#: common/models.py:1222
msgid "Email required"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1223
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1229
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1220
+#: common/models.py:1230
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1226
+#: common/models.py:1236
msgid "Mail twice"
msgstr ""
-#: common/models.py:1227
+#: common/models.py:1237
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1233
+#: common/models.py:1243
msgid "Password twice"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1244
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1240
+#: common/models.py:1250
msgid "Group on signup"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1251
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1257
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1258
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1254
+#: common/models.py:1264
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1255
+#: common/models.py:1265
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1263
+#: common/models.py:1273
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1264
+#: common/models.py:1274
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1271
+#: common/models.py:1281
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1282
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1279
+#: common/models.py:1289
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1280
+#: common/models.py:1290
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1287
+#: common/models.py:1297
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1288
+#: common/models.py:1298
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1295
+#: common/models.py:1305
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1296
+#: common/models.py:1306
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1313 common/models.py:1629
+#: common/models.py:1323 common/models.py:1639
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1335
+#: common/models.py:1345
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1336
+#: common/models.py:1346
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1342
+#: common/models.py:1352
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1343
+#: common/models.py:1353
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1349
+#: common/models.py:1359
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1350
+#: common/models.py:1360
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1356
+#: common/models.py:1366
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1357
+#: common/models.py:1367
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1363
+#: common/models.py:1373
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1374
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1370
+#: common/models.py:1380
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1381
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1377
+#: common/models.py:1387
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1388
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1384
+#: common/models.py:1394
msgid "Show low stock"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1395
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1391
+#: common/models.py:1401
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1402
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1398
+#: common/models.py:1408
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1409
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1415
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1416
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1412
+#: common/models.py:1422
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1423
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1419
+#: common/models.py:1429
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1430
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1426
+#: common/models.py:1436
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1437
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1433
+#: common/models.py:1443
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1444
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1450
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1451
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1457
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1458
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1464
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1465
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1471
msgid "Inline label display"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1472
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1468
+#: common/models.py:1478
msgid "Inline report display"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1479
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1475
+#: common/models.py:1485
msgid "Search Parts"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1486
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1482
+#: common/models.py:1492
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1493
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1489
+#: common/models.py:1499
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1500
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1506
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1507
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1513
msgid "Search Categories"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1514
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1520
msgid "Search Stock"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1521
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1527
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1528
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1524
+#: common/models.py:1534
msgid "Search Locations"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1535
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1531
+#: common/models.py:1541
msgid "Search Companies"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1542
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1538
+#: common/models.py:1548
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1549
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1545
+#: common/models.py:1555
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1556
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1552
+#: common/models.py:1562
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1563
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1559
+#: common/models.py:1569
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1570
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1566
+#: common/models.py:1576
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1577
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1573
+#: common/models.py:1583
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1584
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1580
+#: common/models.py:1590
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1591
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1587
+#: common/models.py:1597
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1598
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1594
+#: common/models.py:1604
msgid "Date Format"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1605
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1609 part/templates/part/detail.html:41
+#: common/models.py:1619 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1620
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1669
+#: common/models.py:1679
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1676 company/serializers.py:366
+#: common/models.py:1686 company/serializers.py:366
#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2096
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152
msgid "Price"
msgstr ""
-#: common/models.py:1677
+#: common/models.py:1687
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1837 common/models.py:2015
+#: common/models.py:1847 common/models.py:2025
msgid "Endpoint"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1848
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1847
+#: common/models.py:1857
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1852 part/models.py:914 plugin/models.py:99
+#: common/models.py:1862 part/models.py:914 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2581,67 +2589,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1853
+#: common/models.py:1863
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1877
msgid "Token"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1878
msgid "Token for access"
msgstr ""
-#: common/models.py:1875
+#: common/models.py:1885
msgid "Secret"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1886
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1982
+#: common/models.py:1992
msgid "Message ID"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1993
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:2001
msgid "Host"
msgstr ""
-#: common/models.py:1992
+#: common/models.py:2002
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:2009
msgid "Header"
msgstr ""
-#: common/models.py:2000
+#: common/models.py:2010
msgid "Header of this message"
msgstr ""
-#: common/models.py:2006
+#: common/models.py:2016
msgid "Body"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:2017
msgid "Body of this message"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2026
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2031
msgid "Worked on"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2032
msgid "Was the work on this message finished?"
msgstr ""
@@ -3032,7 +3040,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513
-#: templates/js/translated/stock.js:2491
+#: templates/js/translated/stock.js:2550
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3320,7 +3328,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:212
#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2168
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224
msgid "Add Price Break"
msgstr ""
@@ -3329,12 +3337,12 @@ msgid "No price break information found"
msgstr ""
#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2178
+#: templates/js/translated/part.js:2234
msgid "Delete Price Break"
msgstr ""
#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2192
+#: templates/js/translated/part.js:2248
msgid "Edit Price Break"
msgstr ""
@@ -3389,7 +3397,7 @@ msgstr ""
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
-#: templates/js/translated/stock.js:2368 users/models.py:40
+#: templates/js/translated/stock.js:2427 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3647,7 +3655,7 @@ msgstr ""
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691
#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2531
msgid "Purchase Order"
msgstr ""
@@ -4207,47 +4215,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:505
+#: part/api.py:514
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:534
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:552
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:575
+#: part/api.py:584
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:695
+#: part/api.py:704
msgid "Valid"
msgstr ""
-#: part/api.py:696
+#: part/api.py:705
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:702
+#: part/api.py:711
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1125
+#: part/api.py:1134
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1129
+#: part/api.py:1138
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1144
+#: part/api.py:1153
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1175 part/api.py:1179 part/api.py:1194 part/api.py:1198
+#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207
msgid "This field is required"
msgstr ""
@@ -4306,7 +4314,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1890 templates/js/translated/search.js:144
+#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4496,7 +4504,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2295 templates/js/translated/part.js:1941
+#: part/models.py:2295 templates/js/translated/part.js:1997
#: templates/js/translated/stock.js:1336
msgid "Test Name"
msgstr ""
@@ -4513,7 +4521,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2307 templates/js/translated/part.js:1950
+#: part/models.py:2307 templates/js/translated/part.js:2006
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
@@ -4522,7 +4530,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2313 templates/js/translated/part.js:1958
+#: part/models.py:2313 templates/js/translated/part.js:2014
msgid "Requires Value"
msgstr ""
@@ -4530,7 +4538,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2319 templates/js/translated/part.js:1965
+#: part/models.py:2319 templates/js/translated/part.js:2021
msgid "Requires Attachment"
msgstr ""
@@ -5868,7 +5876,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2400
+#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459
msgid "Date"
msgstr ""
@@ -5887,19 +5895,19 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:2649
+#: templates/js/translated/stock.js:2708
msgid "Serial"
msgstr ""
-#: stock/api.py:521
+#: stock/api.py:529
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:528
+#: stock/api.py:536
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:553
+#: stock/api.py:561
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -6303,7 +6311,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2793
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852
msgid "Install Stock Item"
msgstr ""
@@ -8309,8 +8317,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383
-#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1682
-#: templates/js/translated/stock.js:2338
+#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8322,7 +8330,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2579
+#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638
msgid "No user information"
msgstr ""
@@ -8916,7 +8924,7 @@ msgstr ""
#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203
#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050
-#: templates/js/translated/part.js:2070 templates/js/translated/part.js:2423
+#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479
msgid "Unit Price"
msgstr ""
@@ -9316,8 +9324,8 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1786
-#: templates/js/translated/stock.js:2299
+#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
@@ -9341,71 +9349,75 @@ msgstr ""
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:2318
+#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1869
+#: templates/js/translated/part.js:1914
+msgid "Load Subcategories"
+msgstr ""
+
+#: templates/js/translated/part.js:1925
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1927
+#: templates/js/translated/part.js:1983
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1978 templates/js/translated/stock.js:1295
+#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1979 templates/js/translated/stock.js:1296
+#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296
#: templates/js/translated/stock.js:1556
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2041
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2007
+#: templates/js/translated/part.js:2063
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2021
+#: templates/js/translated/part.js:2077
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2046
+#: templates/js/translated/part.js:2102
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2103
+#: templates/js/translated/part.js:2159
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2104
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2218
+#: templates/js/translated/part.js:2274
msgid "Current Stock"
msgstr ""
-#: templates/js/translated/part.js:2251
+#: templates/js/translated/part.js:2307
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2277
+#: templates/js/translated/part.js:2333
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2347
+#: templates/js/translated/part.js:2403
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2366
+#: templates/js/translated/part.js:2422
msgid "Single Price Difference"
msgstr ""
@@ -9796,75 +9808,79 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2425
+#: templates/js/translated/stock.js:2400
+msgid "Load Subloactions"
+msgstr ""
+
+#: templates/js/translated/stock.js:2484
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2441
+#: templates/js/translated/stock.js:2500
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2463
+#: templates/js/translated/stock.js:2522
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2482
+#: templates/js/translated/stock.js:2541
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2501
+#: templates/js/translated/stock.js:2560
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2519
+#: templates/js/translated/stock.js:2578
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2542
+#: templates/js/translated/stock.js:2601
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2609
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2626
+#: templates/js/translated/stock.js:2685
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2713
+#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2785
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2747
+#: templates/js/translated/stock.js:2806
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2748
+#: templates/js/translated/stock.js:2807
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2750
+#: templates/js/translated/stock.js:2809
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2751
+#: templates/js/translated/stock.js:2810
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2752
+#: templates/js/translated/stock.js:2811
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/stock.js:2812
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2766
+#: templates/js/translated/stock.js:2825
msgid "Select part to install"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 67f055b00d..ce644169b2 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr ""
@@ -25,11 +25,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index cdb0d4d84f..988374f9ab 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: 2022-08-04 00:21+0000\n"
+"POT-Creation-Date: 2022-08-07 12:49+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -26,11 +26,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -90,76 +90,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:557
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:564 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:567
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:599
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:602
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:630
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:638
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:644
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:648
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -230,12 +230,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1636
-#: common/models.py:1637 common/models.py:1860 common/models.py:1861
-#: common/models.py:2123 common/models.py:2124 part/models.py:2193
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646
+#: common/models.py:1647 common/models.py:1870 common/models.py:1871
+#: common/models.py:2133 common/models.py:2134 part/models.py:2193
#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2573
+#: templates/js/translated/stock.js:2632
msgid "User"
msgstr ""
@@ -272,7 +272,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1846
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856
#: company/models.py:358 label/models.py:101 part/models.py:739
#: part/models.py:2371 plugin/models.py:93 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
@@ -284,7 +284,7 @@ msgstr ""
#: templates/js/translated/company.js:758
#: templates/js/translated/notification.js:71
#: templates/js/translated/part.js:684 templates/js/translated/part.js:836
-#: templates/js/translated/part.js:1858 templates/js/translated/stock.js:2344
+#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
@@ -305,9 +305,9 @@ msgstr ""
#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531
#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1877
-#: templates/js/translated/part.js:1946 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2356 templates/js/translated/stock.js:2410
+#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933
+#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469
msgid "Description"
msgstr ""
@@ -320,7 +320,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1883 templates/js/translated/stock.js:2362
+#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421
msgid "Path"
msgstr ""
@@ -399,99 +399,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -800,8 +800,8 @@ msgstr ""
#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206
#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582
#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954
-#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2436
-#: templates/js/translated/stock.js:2631 templates/js/translated/stock.js:2765
+#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824
msgid "Part"
msgstr ""
@@ -989,7 +989,7 @@ msgstr ""
#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193
#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380
#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2568
msgid "Stock Item"
msgstr ""
@@ -999,7 +999,7 @@ msgstr ""
#: build/models.py:1330 build/serializers.py:193
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1668
+#: build/templates/build/detail.html:34 common/models.py:1678
#: company/templates/company/supplier_part.html:279 order/models.py:897
#: order/models.py:1423 order/serializers.py:1155
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
@@ -1026,11 +1026,11 @@ msgstr ""
#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207
#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386
#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037
-#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2091
-#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2356
-#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:454
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147
+#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412
+#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454
#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778
-#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2643
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702
msgid "Quantity"
msgstr ""
@@ -1104,7 +1104,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:278 stock/api.py:569
+#: build/serializers.py:278 stock/api.py:577
msgid "The following serial numbers already exist"
msgstr ""
@@ -1123,7 +1123,7 @@ msgstr ""
#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584
#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956
-#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2450
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509
msgid "Location"
msgstr ""
@@ -1137,7 +1137,7 @@ msgstr ""
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505
#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724
#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825
-#: templates/js/translated/stock.js:2527 templates/js/translated/stock.js:2659
+#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718
msgid "Status"
msgstr ""
@@ -1448,7 +1448,7 @@ msgstr ""
#: templates/js/translated/build.js:1182
#: templates/js/translated/model_renderers.js:124
#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2725
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
@@ -1759,821 +1759,829 @@ msgstr ""
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:880 templates/InvenTree/settings/sidebar.html:33
-msgid "Barcode Support"
+#: common/models.py:880
+msgid "Tree Depth"
msgstr ""
#: common/models.py:881
+msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
+msgstr ""
+
+#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:891
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:887
+#: common/models.py:897
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:888
+#: common/models.py:898
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:894
+#: common/models.py:904
msgid "IPN Regex"
msgstr ""
-#: common/models.py:895
+#: common/models.py:905
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:899
+#: common/models.py:909
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:900
+#: common/models.py:910
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:906
+#: common/models.py:916
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:907
+#: common/models.py:917
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:913
+#: common/models.py:923
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:914
+#: common/models.py:924
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:920
+#: common/models.py:930
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:921
+#: common/models.py:931
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:927
+#: common/models.py:937
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:928
+#: common/models.py:938
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:934
+#: common/models.py:944
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:935
+#: common/models.py:945
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:941 part/models.py:2412 report/models.py:158
+#: common/models.py:951 part/models.py:2412 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
msgstr ""
-#: common/models.py:942
+#: common/models.py:952
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:948 part/models.py:887 templates/js/translated/bom.js:1448
+#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
msgstr ""
-#: common/models.py:949
+#: common/models.py:959
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:955 part/models.py:893
+#: common/models.py:965 part/models.py:893
#: templates/js/translated/table_filters.js:455
msgid "Component"
msgstr ""
-#: common/models.py:956
+#: common/models.py:966
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:962 part/models.py:904
+#: common/models.py:972 part/models.py:904
msgid "Purchaseable"
msgstr ""
-#: common/models.py:963
+#: common/models.py:973
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:969 part/models.py:909
+#: common/models.py:979 part/models.py:909
#: templates/js/translated/table_filters.js:476
msgid "Salable"
msgstr ""
-#: common/models.py:970
+#: common/models.py:980
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:976 part/models.py:899
+#: common/models.py:986 part/models.py:899
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:108
#: templates/js/translated/table_filters.js:488
msgid "Trackable"
msgstr ""
-#: common/models.py:977
+#: common/models.py:987
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:983 part/models.py:919
+#: common/models.py:993 part/models.py:919
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
#: templates/js/translated/table_filters.js:492
msgid "Virtual"
msgstr ""
-#: common/models.py:984
+#: common/models.py:994
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:990
+#: common/models.py:1000
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:991
+#: common/models.py:1001
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:997
+#: common/models.py:1007
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:998
+#: common/models.py:1008
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1019
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1020
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:1031
msgid "Show Price History"
msgstr ""
-#: common/models.py:1022
+#: common/models.py:1032
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:1038
msgid "Show related parts"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:1039
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Create initial stock"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1043
+#: common/models.py:1053
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1049
+#: common/models.py:1059
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1060
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1066
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1067
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1064
+#: common/models.py:1074
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:1075
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1071
+#: common/models.py:1081
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1091
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1092
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1088 templates/stats.html:25
+#: common/models.py:1098 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1099
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1105
msgid "Page Size"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1116
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1107
+#: common/models.py:1117
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1113
+#: common/models.py:1123
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1134
+#: common/models.py:1144
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1141
+#: common/models.py:1151
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1153
msgid "days"
msgstr ""
-#: common/models.py:1148
+#: common/models.py:1158
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1149
+#: common/models.py:1159
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1165
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1166
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1172
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1163
+#: common/models.py:1173
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1179
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1170
+#: common/models.py:1180
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1176
+#: common/models.py:1186
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1177
+#: common/models.py:1187
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1183
+#: common/models.py:1193
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1184
+#: common/models.py:1194
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1191
+#: common/models.py:1201
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1192
+#: common/models.py:1202
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1208
msgid "Enable registration"
msgstr ""
-#: common/models.py:1199
+#: common/models.py:1209
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1215
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1216
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1212
+#: common/models.py:1222
msgid "Email required"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1223
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1229
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1220
+#: common/models.py:1230
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1226
+#: common/models.py:1236
msgid "Mail twice"
msgstr ""
-#: common/models.py:1227
+#: common/models.py:1237
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1233
+#: common/models.py:1243
msgid "Password twice"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1244
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1240
+#: common/models.py:1250
msgid "Group on signup"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1251
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1257
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1258
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1254
+#: common/models.py:1264
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1255
+#: common/models.py:1265
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1263
+#: common/models.py:1273
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1264
+#: common/models.py:1274
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1271
+#: common/models.py:1281
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1282
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1279
+#: common/models.py:1289
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1280
+#: common/models.py:1290
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1287
+#: common/models.py:1297
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1288
+#: common/models.py:1298
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1295
+#: common/models.py:1305
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1296
+#: common/models.py:1306
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1313 common/models.py:1629
+#: common/models.py:1323 common/models.py:1639
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1335
+#: common/models.py:1345
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1336
+#: common/models.py:1346
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1342
+#: common/models.py:1352
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1343
+#: common/models.py:1353
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1349
+#: common/models.py:1359
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1350
+#: common/models.py:1360
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1356
+#: common/models.py:1366
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1357
+#: common/models.py:1367
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1363
+#: common/models.py:1373
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1374
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1370
+#: common/models.py:1380
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1381
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1377
+#: common/models.py:1387
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1388
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1384
+#: common/models.py:1394
msgid "Show low stock"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1395
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1391
+#: common/models.py:1401
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1402
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1398
+#: common/models.py:1408
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1409
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1415
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1416
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1412
+#: common/models.py:1422
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1423
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1419
+#: common/models.py:1429
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1430
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1426
+#: common/models.py:1436
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1437
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1433
+#: common/models.py:1443
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1444
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1450
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1451
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1457
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1458
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1464
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1465
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1471
msgid "Inline label display"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1472
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1468
+#: common/models.py:1478
msgid "Inline report display"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1479
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1475
+#: common/models.py:1485
msgid "Search Parts"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1486
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1482
+#: common/models.py:1492
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1493
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1489
+#: common/models.py:1499
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1500
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1506
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1507
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1513
msgid "Search Categories"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1514
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1520
msgid "Search Stock"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1521
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1527
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1528
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1524
+#: common/models.py:1534
msgid "Search Locations"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1535
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1531
+#: common/models.py:1541
msgid "Search Companies"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1542
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1538
+#: common/models.py:1548
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1549
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1545
+#: common/models.py:1555
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1556
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1552
+#: common/models.py:1562
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1563
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1559
+#: common/models.py:1569
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1570
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1566
+#: common/models.py:1576
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1577
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1573
+#: common/models.py:1583
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1584
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1580
+#: common/models.py:1590
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1591
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1587
+#: common/models.py:1597
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1598
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1594
+#: common/models.py:1604
msgid "Date Format"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1605
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1609 part/templates/part/detail.html:41
+#: common/models.py:1619 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1620
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1669
+#: common/models.py:1679
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1676 company/serializers.py:366
+#: common/models.py:1686 company/serializers.py:366
#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2096
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152
msgid "Price"
msgstr ""
-#: common/models.py:1677
+#: common/models.py:1687
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1837 common/models.py:2015
+#: common/models.py:1847 common/models.py:2025
msgid "Endpoint"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1848
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1847
+#: common/models.py:1857
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1852 part/models.py:914 plugin/models.py:99
+#: common/models.py:1862 part/models.py:914 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2581,67 +2589,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1853
+#: common/models.py:1863
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1877
msgid "Token"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1878
msgid "Token for access"
msgstr ""
-#: common/models.py:1875
+#: common/models.py:1885
msgid "Secret"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1886
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1982
+#: common/models.py:1992
msgid "Message ID"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1993
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:2001
msgid "Host"
msgstr ""
-#: common/models.py:1992
+#: common/models.py:2002
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:2009
msgid "Header"
msgstr ""
-#: common/models.py:2000
+#: common/models.py:2010
msgid "Header of this message"
msgstr ""
-#: common/models.py:2006
+#: common/models.py:2016
msgid "Body"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:2017
msgid "Body of this message"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2026
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2031
msgid "Worked on"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2032
msgid "Was the work on this message finished?"
msgstr ""
@@ -3032,7 +3040,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513
-#: templates/js/translated/stock.js:2491
+#: templates/js/translated/stock.js:2550
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3320,7 +3328,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:212
#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2168
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224
msgid "Add Price Break"
msgstr ""
@@ -3329,12 +3337,12 @@ msgid "No price break information found"
msgstr ""
#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2178
+#: templates/js/translated/part.js:2234
msgid "Delete Price Break"
msgstr ""
#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2192
+#: templates/js/translated/part.js:2248
msgid "Edit Price Break"
msgstr ""
@@ -3389,7 +3397,7 @@ msgstr ""
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
-#: templates/js/translated/stock.js:2368 users/models.py:40
+#: templates/js/translated/stock.js:2427 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3647,7 +3655,7 @@ msgstr ""
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691
#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2531
msgid "Purchase Order"
msgstr ""
@@ -4207,47 +4215,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:505
+#: part/api.py:514
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:534
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:552
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:575
+#: part/api.py:584
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:695
+#: part/api.py:704
msgid "Valid"
msgstr ""
-#: part/api.py:696
+#: part/api.py:705
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:702
+#: part/api.py:711
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1125
+#: part/api.py:1134
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1129
+#: part/api.py:1138
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1144
+#: part/api.py:1153
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1175 part/api.py:1179 part/api.py:1194 part/api.py:1198
+#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207
msgid "This field is required"
msgstr ""
@@ -4306,7 +4314,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1890 templates/js/translated/search.js:144
+#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4496,7 +4504,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2295 templates/js/translated/part.js:1941
+#: part/models.py:2295 templates/js/translated/part.js:1997
#: templates/js/translated/stock.js:1336
msgid "Test Name"
msgstr ""
@@ -4513,7 +4521,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2307 templates/js/translated/part.js:1950
+#: part/models.py:2307 templates/js/translated/part.js:2006
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
@@ -4522,7 +4530,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2313 templates/js/translated/part.js:1958
+#: part/models.py:2313 templates/js/translated/part.js:2014
msgid "Requires Value"
msgstr ""
@@ -4530,7 +4538,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2319 templates/js/translated/part.js:1965
+#: part/models.py:2319 templates/js/translated/part.js:2021
msgid "Requires Attachment"
msgstr ""
@@ -5868,7 +5876,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2400
+#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459
msgid "Date"
msgstr ""
@@ -5887,19 +5895,19 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:2649
+#: templates/js/translated/stock.js:2708
msgid "Serial"
msgstr ""
-#: stock/api.py:521
+#: stock/api.py:529
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:528
+#: stock/api.py:536
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:553
+#: stock/api.py:561
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -6303,7 +6311,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2793
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852
msgid "Install Stock Item"
msgstr ""
@@ -8309,8 +8317,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383
-#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1682
-#: templates/js/translated/stock.js:2338
+#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8322,7 +8330,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2579
+#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638
msgid "No user information"
msgstr ""
@@ -8916,7 +8924,7 @@ msgstr ""
#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203
#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050
-#: templates/js/translated/part.js:2070 templates/js/translated/part.js:2423
+#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479
msgid "Unit Price"
msgstr ""
@@ -9316,8 +9324,8 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1786
-#: templates/js/translated/stock.js:2299
+#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
@@ -9341,71 +9349,75 @@ msgstr ""
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:2318
+#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1869
+#: templates/js/translated/part.js:1914
+msgid "Load Subcategories"
+msgstr ""
+
+#: templates/js/translated/part.js:1925
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1927
+#: templates/js/translated/part.js:1983
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1978 templates/js/translated/stock.js:1295
+#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1979 templates/js/translated/stock.js:1296
+#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296
#: templates/js/translated/stock.js:1556
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2041
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2007
+#: templates/js/translated/part.js:2063
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2021
+#: templates/js/translated/part.js:2077
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2046
+#: templates/js/translated/part.js:2102
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2103
+#: templates/js/translated/part.js:2159
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2104
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2218
+#: templates/js/translated/part.js:2274
msgid "Current Stock"
msgstr ""
-#: templates/js/translated/part.js:2251
+#: templates/js/translated/part.js:2307
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2277
+#: templates/js/translated/part.js:2333
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2347
+#: templates/js/translated/part.js:2403
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2366
+#: templates/js/translated/part.js:2422
msgid "Single Price Difference"
msgstr ""
@@ -9796,75 +9808,79 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2425
+#: templates/js/translated/stock.js:2400
+msgid "Load Subloactions"
+msgstr ""
+
+#: templates/js/translated/stock.js:2484
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2441
+#: templates/js/translated/stock.js:2500
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2463
+#: templates/js/translated/stock.js:2522
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2482
+#: templates/js/translated/stock.js:2541
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2501
+#: templates/js/translated/stock.js:2560
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2519
+#: templates/js/translated/stock.js:2578
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2542
+#: templates/js/translated/stock.js:2601
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2609
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2626
+#: templates/js/translated/stock.js:2685
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2713
+#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2785
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2747
+#: templates/js/translated/stock.js:2806
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2748
+#: templates/js/translated/stock.js:2807
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2750
+#: templates/js/translated/stock.js:2809
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2751
+#: templates/js/translated/stock.js:2810
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2752
+#: templates/js/translated/stock.js:2811
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/stock.js:2812
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2766
+#: templates/js/translated/stock.js:2825
msgid "Select part to install"
msgstr ""
diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po
index 68130700a0..cf5f538745 100644
--- a/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "Address e API peida nashod"
@@ -25,11 +25,11 @@ msgstr "Address e API peida nashod"
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 876efcc362..4fc541b2b8 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "Point de terminaison de l'API introuvable"
@@ -25,11 +25,11 @@ msgstr "Point de terminaison de l'API introuvable"
msgid "Error details can be found in the admin panel"
msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Entrer la date"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Confirmation de l'adresse email"
msgid "You must type the same email each time."
msgstr "Vous devez taper le même e-mail à chaque fois."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Dupliquer le numéro : {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Plage de groupe invalide : {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Groupe invalide : {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Séquence de groupe invalide : {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Invalide/aucun groupe {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Tchèque"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Grec"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Espagnol"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Farsi / Perse"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hébreu"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Hongrois"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italien"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japonais"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Coréen"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Néerlandais"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norvégien"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugais"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugais (Brésilien)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Russe"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Suédois"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thaïlandais"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamien"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Chinois"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 98eb280e2b..55c0fce256 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr ""
@@ -25,11 +25,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "הזן תאריך סיום"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "אישור כתובת אימייל"
msgid "You must type the same email each time."
msgstr "חובה לרשום את אותו אימייל בכל פעם."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "קבוצה שגויה: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "קבוצה שגויה / לא נמצאה {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "מספרים סידוריים לא נמצאו"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "גרמנית"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "יוונית"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "אנגלית"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "ספרדית"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "ספרדית (מקסיקנית)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "צרפתית"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "עברית"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "איטלקית"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "יפנית"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "קוריאנית"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "הולנדית"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "נורווגית"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "פולנית"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "רוסית"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "שוודית"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "תאילנדית"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "טורקית"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "ווייטנאמית"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "סינית"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index 33856d83cc..838fa7ce54 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API funkciót nem találom"
@@ -25,11 +25,11 @@ msgstr "API funkciót nem találom"
msgid "Error details can be found in the admin panel"
msgstr "A hiba részleteit megtalálod az admin panelen"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Dátum megadása"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Email cím megerősítés"
msgid "You must type the same email each time."
msgstr "Mindig ugyanazt az email címet kell beírni."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr "Csatlakozási hiba"
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt"
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr "Kivétel történt"
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr "A kiszolgáló érvénytelen Content-Length értéket adott"
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr "A kép mérete túl nagy"
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr "A kép letöltés meghaladja a maximális méretet"
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr "A kiszolgáló üres választ adott"
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "A megadott URL nem egy érvényes kép fájl"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Duplikált sorozatszám: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Nem megfelelő mennyiség"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Üres sorozatszám"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Érvénytelen csoport tartomány: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Érvénytelen csoport: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Érvénytelen csoport szekvencia: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Érvénytelen vagy nemlétező csoport {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Nem található sorozatszám"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "A megadott számú egyedi sorozatszám ({s}) meg kell egyezzen a darabszámmal ({q})"
@@ -398,99 +398,99 @@ msgstr "A távoli kép URL-je"
msgid "Downloading images from remote URL is not enabled"
msgstr "Képek letöltése távoli URL-ről nem engedélyezett"
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Cseh"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Német"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Görög"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Angol"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Spanyol (Mexikói)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Fárszi/Perzsa"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Francia"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Héber"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Magyar"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Olasz"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japán"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Koreai"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Holland"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norvég"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Lengyel"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugál"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugál (Brazíliai)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Orosz"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Svéd"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Tháj"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Török"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnámi"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Kínai"
@@ -5517,11 +5517,11 @@ msgstr "Alkatrész változat létrehozása"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Új változat létrehozása a '%(full_name)s' sablonból."
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr "Ismeretlen adatbázis"
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr "{title} v{version}"
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 81a019e4ea..dfde3a10cb 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API endpoint tidak ditemukan"
@@ -25,11 +25,11 @@ msgstr "API endpoint tidak ditemukan"
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Masukkan tanggal"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Konfirmasi alamat email"
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 41454eb66d..6647bf3400 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "Endpoint API non trovato"
@@ -25,11 +25,11 @@ msgstr "Endpoint API non trovato"
msgid "Error details can be found in the admin panel"
msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministrazione"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Inserisci la data"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Conferma indirizzo email"
msgid "You must type the same email each time."
msgstr "È necessario digitare la stessa e-mail ogni volta."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Seriale duplicato: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Numero seriale vuoto"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Range gruppo: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Gruppo non valido: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Sequenza gruppo non valida: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Gruppo {group} invalido o inesistente"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Nessun numero di serie trovato"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Ceco"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Farsi / Persiano"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Ungherese"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portoghese"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portoghese (Brasile)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Cinese"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr "Database sconosciuto"
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 6244f66a11..0c374bbec5 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "APIエンドポイントが見つかりません"
@@ -25,11 +25,11 @@ msgstr "APIエンドポイントが見つかりません"
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "日付を入力する"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "メールアドレスの確認"
msgid "You must type the same email each time."
msgstr "毎回同じメールアドレスを入力する必要があります。"
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "重複したシリアル番号: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "シリアル番号は空です"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "無効なグループ: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "{group} は無効なグループか、存在しません。"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "シリアル番号が見つかりません"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "ギリシャ語"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "スペイン語"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "スペイン語(メキシコ)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "ヘブライ語"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "ハンガリー語"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "イタリア語"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "日本語"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "韓国語"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "オランダ語"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "ノルウェー語"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "ロシア語"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "スウェーデン語"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "タイ語"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "ベトナム語"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "中国語"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index d87af16a77..c3a95168be 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr ""
@@ -25,11 +25,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "이메일 주소 확인"
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "체코어"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "독일어"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "그리스어"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "영어"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "스페인어"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "스페인어 (멕시코)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "파르시어/페르시아어"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "프랑스어"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "히브리어"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "헝가리어"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "이탈리아어"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "일본어"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "한국어"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "네덜란드어"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "노르웨이어"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "폴란드어"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "러시아어"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "스웨덴어"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "태국어"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "터키어"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "베트남어"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "중국어"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 7d5d35fb2a..bfc943cc4f 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-06 01:07\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API eindpunt niet gevonden"
@@ -25,11 +25,11 @@ msgstr "API eindpunt niet gevonden"
msgid "Error details can be found in the admin panel"
msgstr "Error details kunnen worden gevonden in het admin scherm"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Voer datum in"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "E-mailadres bevestiging"
msgid "You must type the same email each time."
msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr "Verbindingsfout"
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr "Server reageerde met ongeldige statuscode"
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr "Uitzondering opgetreden"
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr "Server reageerde met ongeldige Content-Length waarde"
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr "Afbeeldingsformaat is te groot"
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr "Beelddownload overschrijdt de maximale grootte"
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr "Externe server heeft lege reactie teruggegeven"
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "Opgegeven URL is geen geldig afbeeldingsbestand"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Duplicaat serienummer: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveelheid ingevoerd"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Leeg serienummer"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ongeldig groepsbereik: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ongeldige groep: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ongeldig groepsbereik: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ongeldige/geen groep {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Geen serienummers gevonden"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})"
@@ -398,99 +398,99 @@ msgstr "URL van extern afbeeldingsbestand"
msgid "Downloading images from remote URL is not enabled"
msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld"
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Tsjechisch"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Farsi / Perzisch"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Hongaars"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugees"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugees (Braziliaans)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Chinees"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 45c1070efe..432863233e 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API endepunkt ikke funnet"
@@ -25,11 +25,11 @@ msgstr "API endepunkt ikke funnet"
msgid "Error details can be found in the admin panel"
msgstr "Feildetaljer kan ikke finnes i admin-panelet"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Oppgi dato"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Bekreftelsen på e-postaddresse"
msgid "You must type the same email each time."
msgstr "Du må angi samme e-post hver gang."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr "Tilkoblingsfeil"
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr "Serveren svarte med ugyldig statuskode"
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr "Det har oppstått et unntak"
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr "Serveren svarte med ugylding innholdslengde verdi"
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr "Bildestørrelsen er for stor"
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr "Bildenedlasting overskred maksimal størrelse"
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr "Ekstern server returnerte tomt svar"
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "Angitt URL er ikke en gyldig bildefil"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Dupliser serie: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Tom serienummerstreng"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ugyldig gruppeserie: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ugyldig gruppe: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ugyldig gruppesekvense: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Ugyldig/ingen gruppe {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Ingen serienummer funnet"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Antall unike serienumre ({s}) må samsvare med antall ({q})"
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Tsjekkisk"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Spansk (Meksikansk)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Farsi / Persisk"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Ungarsk"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugisisk"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugisisk (Brasilian)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Kinesisk"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 5df6c03a1e..0aaaa58fad 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "Nie znaleziono punktu końcowego API"
@@ -25,11 +25,11 @@ msgstr "Nie znaleziono punktu końcowego API"
msgid "Error details can be found in the admin panel"
msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Wprowadź dane"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Potwierdzenie adresu email"
msgid "You must type the same email each time."
msgstr "Należy ponownie wpisać ten sam adres e-mail."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Powtórzony numer seryjny: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Nieprawidłowy zakres grupy: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Nieprawidłowa grupa: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Nieprawidłowa sekwencja grupy: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Nieprawidłowa/Brak grupy {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Liczba unikalnych numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Czeski"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Perski"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Węgierski"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugalski"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugalski (Brazylijski)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Chiński"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr "Nieznana baza danych"
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 1d554c59c2..9a3be100c5 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API endpoint não encontrado"
@@ -25,11 +25,11 @@ msgstr "API endpoint não encontrado"
msgid "Error details can be found in the admin panel"
msgstr "Detalhes do erro podem ser encontrados no painel de administrador"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Insira uma Data"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Confirmação do endereço de email"
msgid "You must type the same email each time."
msgstr "Voce precisa digital o mesmo email."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Numero serial duplicado: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Quantidade invalida"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Numero serial em branco"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Numero de grupo invalido:{g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Grupo invalido:{g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Sequencia de grupo invalida:{g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Invalido/sem grupo {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Nenhum numero serial encontrado"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "Numero de numeros seriais ({s}) precisa bater com quantidade ({q})"
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
index 6a5ca70fea..6af15e7092 100644
--- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-04 00:21+0000\n"
+"POT-Creation-Date: 2022-08-07 12:49+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -26,11 +26,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -90,76 +90,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:557
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:564 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:567
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:599
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:602
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:630
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:638
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:644
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:648
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -230,12 +230,12 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1636
-#: common/models.py:1637 common/models.py:1860 common/models.py:1861
-#: common/models.py:2123 common/models.py:2124 part/models.py:2193
+#: InvenTree/models.py:412 InvenTree/models.py:413 common/models.py:1646
+#: common/models.py:1647 common/models.py:1870 common/models.py:1871
+#: common/models.py:2133 common/models.py:2134 part/models.py:2193
#: part/models.py:2213 plugin/models.py:238 plugin/models.py:239
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2573
+#: templates/js/translated/stock.js:2632
msgid "User"
msgstr ""
@@ -272,7 +272,7 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1846
+#: InvenTree/models.py:537 InvenTree/models.py:538 common/models.py:1856
#: company/models.py:358 label/models.py:101 part/models.py:739
#: part/models.py:2371 plugin/models.py:93 report/models.py:152
#: templates/InvenTree/settings/mixins/urls.html:13
@@ -284,7 +284,7 @@ msgstr ""
#: templates/js/translated/company.js:758
#: templates/js/translated/notification.js:71
#: templates/js/translated/part.js:684 templates/js/translated/part.js:836
-#: templates/js/translated/part.js:1858 templates/js/translated/stock.js:2344
+#: templates/js/translated/part.js:1902 templates/js/translated/stock.js:2388
msgid "Name"
msgstr ""
@@ -305,9 +305,9 @@ msgstr ""
#: templates/js/translated/company.js:959 templates/js/translated/order.js:1720
#: templates/js/translated/order.js:1952 templates/js/translated/order.js:2531
#: templates/js/translated/part.js:743 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1877
-#: templates/js/translated/part.js:1946 templates/js/translated/stock.js:1739
-#: templates/js/translated/stock.js:2356 templates/js/translated/stock.js:2410
+#: templates/js/translated/part.js:1424 templates/js/translated/part.js:1933
+#: templates/js/translated/part.js:2002 templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:2415 templates/js/translated/stock.js:2469
msgid "Description"
msgstr ""
@@ -320,7 +320,7 @@ msgid "parent"
msgstr ""
#: InvenTree/models.py:560 InvenTree/models.py:561
-#: templates/js/translated/part.js:1883 templates/js/translated/stock.js:2362
+#: templates/js/translated/part.js:1939 templates/js/translated/stock.js:2421
msgid "Path"
msgstr ""
@@ -399,99 +399,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -800,8 +800,8 @@ msgstr ""
#: templates/js/translated/part.js:1134 templates/js/translated/part.js:1206
#: templates/js/translated/part.js:1402 templates/js/translated/stock.js:582
#: templates/js/translated/stock.js:747 templates/js/translated/stock.js:954
-#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2436
-#: templates/js/translated/stock.js:2631 templates/js/translated/stock.js:2765
+#: templates/js/translated/stock.js:1696 templates/js/translated/stock.js:2495
+#: templates/js/translated/stock.js:2690 templates/js/translated/stock.js:2824
msgid "Part"
msgstr ""
@@ -989,7 +989,7 @@ msgstr ""
#: templates/js/translated/order.js:3188 templates/js/translated/order.js:3193
#: templates/js/translated/order.js:3288 templates/js/translated/order.js:3380
#: templates/js/translated/stock.js:583 templates/js/translated/stock.js:748
-#: templates/js/translated/stock.js:2509
+#: templates/js/translated/stock.js:2568
msgid "Stock Item"
msgstr ""
@@ -999,7 +999,7 @@ msgstr ""
#: build/models.py:1330 build/serializers.py:193
#: build/templates/build/build_base.html:82
-#: build/templates/build/detail.html:34 common/models.py:1668
+#: build/templates/build/detail.html:34 common/models.py:1678
#: company/templates/company/supplier_part.html:279 order/models.py:897
#: order/models.py:1423 order/serializers.py:1155
#: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40
@@ -1026,11 +1026,11 @@ msgstr ""
#: templates/js/translated/order.js:2887 templates/js/translated/order.js:3207
#: templates/js/translated/order.js:3294 templates/js/translated/order.js:3386
#: templates/js/translated/order.js:3529 templates/js/translated/order.js:4037
-#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2091
-#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2356
-#: templates/js/translated/part.js:2434 templates/js/translated/stock.js:454
+#: templates/js/translated/part.js:1034 templates/js/translated/part.js:2147
+#: templates/js/translated/part.js:2378 templates/js/translated/part.js:2412
+#: templates/js/translated/part.js:2490 templates/js/translated/stock.js:454
#: templates/js/translated/stock.js:608 templates/js/translated/stock.js:778
-#: templates/js/translated/stock.js:2558 templates/js/translated/stock.js:2643
+#: templates/js/translated/stock.js:2617 templates/js/translated/stock.js:2702
msgid "Quantity"
msgstr ""
@@ -1104,7 +1104,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:278 stock/api.py:569
+#: build/serializers.py:278 stock/api.py:577
msgid "The following serial numbers already exist"
msgstr ""
@@ -1123,7 +1123,7 @@ msgstr ""
#: templates/js/translated/order.js:3313 templates/js/translated/order.js:3394
#: templates/js/translated/part.js:181 templates/js/translated/stock.js:584
#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:956
-#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2450
+#: templates/js/translated/stock.js:1850 templates/js/translated/stock.js:2509
msgid "Location"
msgstr ""
@@ -1137,7 +1137,7 @@ msgstr ""
#: templates/js/translated/barcode.js:182 templates/js/translated/build.js:2505
#: templates/js/translated/order.js:1392 templates/js/translated/order.js:1724
#: templates/js/translated/order.js:2536 templates/js/translated/stock.js:1825
-#: templates/js/translated/stock.js:2527 templates/js/translated/stock.js:2659
+#: templates/js/translated/stock.js:2586 templates/js/translated/stock.js:2718
msgid "Status"
msgstr ""
@@ -1448,7 +1448,7 @@ msgstr ""
#: templates/js/translated/build.js:1182
#: templates/js/translated/model_renderers.js:124
#: templates/js/translated/stock.js:1022 templates/js/translated/stock.js:1839
-#: templates/js/translated/stock.js:2666
+#: templates/js/translated/stock.js:2725
#: templates/js/translated/table_filters.js:159
#: templates/js/translated/table_filters.js:250
msgid "Batch"
@@ -1759,821 +1759,829 @@ msgstr ""
msgid "Require explicit user confirmation for certain action."
msgstr ""
-#: common/models.py:880 templates/InvenTree/settings/sidebar.html:33
-msgid "Barcode Support"
+#: common/models.py:880
+msgid "Tree Depth"
msgstr ""
#: common/models.py:881
+msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed."
+msgstr ""
+
+#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:891
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:887
+#: common/models.py:897
msgid "Barcode Webcam Support"
msgstr ""
-#: common/models.py:888
+#: common/models.py:898
msgid "Allow barcode scanning via webcam in browser"
msgstr ""
-#: common/models.py:894
+#: common/models.py:904
msgid "IPN Regex"
msgstr ""
-#: common/models.py:895
+#: common/models.py:905
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:899
+#: common/models.py:909
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:900
+#: common/models.py:910
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:906
+#: common/models.py:916
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:907
+#: common/models.py:917
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:913
+#: common/models.py:923
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:914
+#: common/models.py:924
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:920
+#: common/models.py:930
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:921
+#: common/models.py:931
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:927
+#: common/models.py:937
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:928
+#: common/models.py:938
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:934
+#: common/models.py:944
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:935
+#: common/models.py:945
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:941 part/models.py:2412 report/models.py:158
+#: common/models.py:951 part/models.py:2412 report/models.py:158
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:484
msgid "Template"
msgstr ""
-#: common/models.py:942
+#: common/models.py:952
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:948 part/models.py:887 templates/js/translated/bom.js:1448
+#: common/models.py:958 part/models.py:887 templates/js/translated/bom.js:1448
#: templates/js/translated/table_filters.js:176
#: templates/js/translated/table_filters.js:447
msgid "Assembly"
msgstr ""
-#: common/models.py:949
+#: common/models.py:959
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:955 part/models.py:893
+#: common/models.py:965 part/models.py:893
#: templates/js/translated/table_filters.js:455
msgid "Component"
msgstr ""
-#: common/models.py:956
+#: common/models.py:966
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:962 part/models.py:904
+#: common/models.py:972 part/models.py:904
msgid "Purchaseable"
msgstr ""
-#: common/models.py:963
+#: common/models.py:973
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:969 part/models.py:909
+#: common/models.py:979 part/models.py:909
#: templates/js/translated/table_filters.js:476
msgid "Salable"
msgstr ""
-#: common/models.py:970
+#: common/models.py:980
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:976 part/models.py:899
+#: common/models.py:986 part/models.py:899
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:108
#: templates/js/translated/table_filters.js:488
msgid "Trackable"
msgstr ""
-#: common/models.py:977
+#: common/models.py:987
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:983 part/models.py:919
+#: common/models.py:993 part/models.py:919
#: part/templates/part/part_base.html:151
#: templates/js/translated/table_filters.js:42
#: templates/js/translated/table_filters.js:492
msgid "Virtual"
msgstr ""
-#: common/models.py:984
+#: common/models.py:994
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:990
+#: common/models.py:1000
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:991
+#: common/models.py:1001
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:997
+#: common/models.py:1007
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:998
+#: common/models.py:1008
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1019
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1020
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:1021
+#: common/models.py:1031
msgid "Show Price History"
msgstr ""
-#: common/models.py:1022
+#: common/models.py:1032
msgid "Display historical pricing for Part"
msgstr ""
-#: common/models.py:1028
+#: common/models.py:1038
msgid "Show related parts"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:1039
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1045
msgid "Create initial stock"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1046
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1052
msgid "Internal Prices"
msgstr ""
-#: common/models.py:1043
+#: common/models.py:1053
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:1049
+#: common/models.py:1059
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1060
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1066
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1067
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:1064
+#: common/models.py:1074
msgid "Enable label printing"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:1075
msgid "Enable label printing from the web interface"
msgstr ""
-#: common/models.py:1071
+#: common/models.py:1081
msgid "Label Image DPI"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1082
msgid "DPI resolution when generating image files to supply to label printing plugins"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1091
msgid "Enable Reports"
msgstr ""
-#: common/models.py:1082
+#: common/models.py:1092
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:1088 templates/stats.html:25
+#: common/models.py:1098 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1099
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:1095
+#: common/models.py:1105
msgid "Page Size"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1106
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:1106
+#: common/models.py:1116
msgid "Enable Test Reports"
msgstr ""
-#: common/models.py:1107
+#: common/models.py:1117
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:1113
+#: common/models.py:1123
msgid "Attach Test Reports"
msgstr ""
-#: common/models.py:1114
+#: common/models.py:1124
msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item"
msgstr ""
-#: common/models.py:1120
+#: common/models.py:1130
msgid "Batch Code Template"
msgstr ""
-#: common/models.py:1121
+#: common/models.py:1131
msgid "Template for generating default batch codes for stock items"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1136
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1137
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1143
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:1134
+#: common/models.py:1144
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1150
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:1141
+#: common/models.py:1151
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:1143
+#: common/models.py:1153
msgid "days"
msgstr ""
-#: common/models.py:1148
+#: common/models.py:1158
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:1149
+#: common/models.py:1159
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:1155
+#: common/models.py:1165
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:1156
+#: common/models.py:1166
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:1162
+#: common/models.py:1172
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/models.py:1163
+#: common/models.py:1173
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/models.py:1169
+#: common/models.py:1179
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/models.py:1170
+#: common/models.py:1180
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/models.py:1176
+#: common/models.py:1186
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/models.py:1177
+#: common/models.py:1187
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/models.py:1183
+#: common/models.py:1193
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/models.py:1184
+#: common/models.py:1194
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/models.py:1191
+#: common/models.py:1201
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:1192
+#: common/models.py:1202
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:1198
+#: common/models.py:1208
msgid "Enable registration"
msgstr ""
-#: common/models.py:1199
+#: common/models.py:1209
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:1205
+#: common/models.py:1215
msgid "Enable SSO"
msgstr ""
-#: common/models.py:1206
+#: common/models.py:1216
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:1212
+#: common/models.py:1222
msgid "Email required"
msgstr ""
-#: common/models.py:1213
+#: common/models.py:1223
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1229
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:1220
+#: common/models.py:1230
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:1226
+#: common/models.py:1236
msgid "Mail twice"
msgstr ""
-#: common/models.py:1227
+#: common/models.py:1237
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:1233
+#: common/models.py:1243
msgid "Password twice"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1244
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:1240
+#: common/models.py:1250
msgid "Group on signup"
msgstr ""
-#: common/models.py:1241
+#: common/models.py:1251
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1247
+#: common/models.py:1257
msgid "Enforce MFA"
msgstr ""
-#: common/models.py:1248
+#: common/models.py:1258
msgid "Users must use multifactor security."
msgstr ""
-#: common/models.py:1254
+#: common/models.py:1264
msgid "Check plugins on startup"
msgstr ""
-#: common/models.py:1255
+#: common/models.py:1265
msgid "Check that all plugins are installed on startup - enable in container enviroments"
msgstr ""
-#: common/models.py:1263
+#: common/models.py:1273
msgid "Enable URL integration"
msgstr ""
-#: common/models.py:1264
+#: common/models.py:1274
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/models.py:1271
+#: common/models.py:1281
msgid "Enable navigation integration"
msgstr ""
-#: common/models.py:1272
+#: common/models.py:1282
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/models.py:1279
+#: common/models.py:1289
msgid "Enable app integration"
msgstr ""
-#: common/models.py:1280
+#: common/models.py:1290
msgid "Enable plugins to add apps"
msgstr ""
-#: common/models.py:1287
+#: common/models.py:1297
msgid "Enable schedule integration"
msgstr ""
-#: common/models.py:1288
+#: common/models.py:1298
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/models.py:1295
+#: common/models.py:1305
msgid "Enable event integration"
msgstr ""
-#: common/models.py:1296
+#: common/models.py:1306
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/models.py:1313 common/models.py:1629
+#: common/models.py:1323 common/models.py:1639
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:1335
+#: common/models.py:1345
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1336
+#: common/models.py:1346
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1342
+#: common/models.py:1352
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1343
+#: common/models.py:1353
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1349
+#: common/models.py:1359
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1350
+#: common/models.py:1360
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1356
+#: common/models.py:1366
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1357
+#: common/models.py:1367
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1363
+#: common/models.py:1373
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1364
+#: common/models.py:1374
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1370
+#: common/models.py:1380
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1371
+#: common/models.py:1381
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1377
+#: common/models.py:1387
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1378
+#: common/models.py:1388
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1384
+#: common/models.py:1394
msgid "Show low stock"
msgstr ""
-#: common/models.py:1385
+#: common/models.py:1395
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1391
+#: common/models.py:1401
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1392
+#: common/models.py:1402
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1398
+#: common/models.py:1408
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1399
+#: common/models.py:1409
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1405
+#: common/models.py:1415
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1406
+#: common/models.py:1416
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1412
+#: common/models.py:1422
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1413
+#: common/models.py:1423
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1419
+#: common/models.py:1429
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1420
+#: common/models.py:1430
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1426
+#: common/models.py:1436
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1427
+#: common/models.py:1437
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1433
+#: common/models.py:1443
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1434
+#: common/models.py:1444
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1440
+#: common/models.py:1450
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1441
+#: common/models.py:1451
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1447
+#: common/models.py:1457
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1448
+#: common/models.py:1458
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1454
+#: common/models.py:1464
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1455
+#: common/models.py:1465
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1461
+#: common/models.py:1471
msgid "Inline label display"
msgstr ""
-#: common/models.py:1462
+#: common/models.py:1472
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1468
+#: common/models.py:1478
msgid "Inline report display"
msgstr ""
-#: common/models.py:1469
+#: common/models.py:1479
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1475
+#: common/models.py:1485
msgid "Search Parts"
msgstr ""
-#: common/models.py:1476
+#: common/models.py:1486
msgid "Display parts in search preview window"
msgstr ""
-#: common/models.py:1482
+#: common/models.py:1492
msgid "Seach Supplier Parts"
msgstr ""
-#: common/models.py:1483
+#: common/models.py:1493
msgid "Display supplier parts in search preview window"
msgstr ""
-#: common/models.py:1489
+#: common/models.py:1499
msgid "Search Manufacturer Parts"
msgstr ""
-#: common/models.py:1490
+#: common/models.py:1500
msgid "Display manufacturer parts in search preview window"
msgstr ""
-#: common/models.py:1496
+#: common/models.py:1506
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1497
+#: common/models.py:1507
msgid "Excluded inactive parts from search preview window"
msgstr ""
-#: common/models.py:1503
+#: common/models.py:1513
msgid "Search Categories"
msgstr ""
-#: common/models.py:1504
+#: common/models.py:1514
msgid "Display part categories in search preview window"
msgstr ""
-#: common/models.py:1510
+#: common/models.py:1520
msgid "Search Stock"
msgstr ""
-#: common/models.py:1511
+#: common/models.py:1521
msgid "Display stock items in search preview window"
msgstr ""
-#: common/models.py:1517
+#: common/models.py:1527
msgid "Hide Unavailable Stock Items"
msgstr ""
-#: common/models.py:1518
+#: common/models.py:1528
msgid "Exclude stock items which are not available from the search preview window"
msgstr ""
-#: common/models.py:1524
+#: common/models.py:1534
msgid "Search Locations"
msgstr ""
-#: common/models.py:1525
+#: common/models.py:1535
msgid "Display stock locations in search preview window"
msgstr ""
-#: common/models.py:1531
+#: common/models.py:1541
msgid "Search Companies"
msgstr ""
-#: common/models.py:1532
+#: common/models.py:1542
msgid "Display companies in search preview window"
msgstr ""
-#: common/models.py:1538
+#: common/models.py:1548
msgid "Search Purchase Orders"
msgstr ""
-#: common/models.py:1539
+#: common/models.py:1549
msgid "Display purchase orders in search preview window"
msgstr ""
-#: common/models.py:1545
+#: common/models.py:1555
msgid "Exclude Inactive Purchase Orders"
msgstr ""
-#: common/models.py:1546
+#: common/models.py:1556
msgid "Exclude inactive purchase orders from search preview window"
msgstr ""
-#: common/models.py:1552
+#: common/models.py:1562
msgid "Search Sales Orders"
msgstr ""
-#: common/models.py:1553
+#: common/models.py:1563
msgid "Display sales orders in search preview window"
msgstr ""
-#: common/models.py:1559
+#: common/models.py:1569
msgid "Exclude Inactive Sales Orders"
msgstr ""
-#: common/models.py:1560
+#: common/models.py:1570
msgid "Exclude inactive sales orders from search preview window"
msgstr ""
-#: common/models.py:1566
+#: common/models.py:1576
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1567
+#: common/models.py:1577
msgid "Number of results to show in each section of the search preview window"
msgstr ""
-#: common/models.py:1573
+#: common/models.py:1583
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1574
+#: common/models.py:1584
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1580
+#: common/models.py:1590
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1581
+#: common/models.py:1591
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1587
+#: common/models.py:1597
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1588
+#: common/models.py:1598
msgid "The navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1594
+#: common/models.py:1604
msgid "Date Format"
msgstr ""
-#: common/models.py:1595
+#: common/models.py:1605
msgid "Preferred format for displaying dates"
msgstr ""
-#: common/models.py:1609 part/templates/part/detail.html:41
+#: common/models.py:1619 part/templates/part/detail.html:41
msgid "Part Scheduling"
msgstr ""
-#: common/models.py:1610
+#: common/models.py:1620
msgid "Display part scheduling information"
msgstr ""
-#: common/models.py:1669
+#: common/models.py:1679
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1676 company/serializers.py:366
+#: common/models.py:1686 company/serializers.py:366
#: company/templates/company/supplier_part.html:284 order/models.py:938
-#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2096
+#: templates/js/translated/part.js:1065 templates/js/translated/part.js:2152
msgid "Price"
msgstr ""
-#: common/models.py:1677
+#: common/models.py:1687
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1837 common/models.py:2015
+#: common/models.py:1847 common/models.py:2025
msgid "Endpoint"
msgstr ""
-#: common/models.py:1838
+#: common/models.py:1848
msgid "Endpoint at which this webhook is received"
msgstr ""
-#: common/models.py:1847
+#: common/models.py:1857
msgid "Name for this webhook"
msgstr ""
-#: common/models.py:1852 part/models.py:914 plugin/models.py:99
+#: common/models.py:1862 part/models.py:914 plugin/models.py:99
#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:104
#: templates/js/translated/table_filters.js:316
@@ -2581,67 +2589,67 @@ msgstr ""
msgid "Active"
msgstr ""
-#: common/models.py:1853
+#: common/models.py:1863
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1867
+#: common/models.py:1877
msgid "Token"
msgstr ""
-#: common/models.py:1868
+#: common/models.py:1878
msgid "Token for access"
msgstr ""
-#: common/models.py:1875
+#: common/models.py:1885
msgid "Secret"
msgstr ""
-#: common/models.py:1876
+#: common/models.py:1886
msgid "Shared secret for HMAC"
msgstr ""
-#: common/models.py:1982
+#: common/models.py:1992
msgid "Message ID"
msgstr ""
-#: common/models.py:1983
+#: common/models.py:1993
msgid "Unique identifier for this message"
msgstr ""
-#: common/models.py:1991
+#: common/models.py:2001
msgid "Host"
msgstr ""
-#: common/models.py:1992
+#: common/models.py:2002
msgid "Host from which this message was received"
msgstr ""
-#: common/models.py:1999
+#: common/models.py:2009
msgid "Header"
msgstr ""
-#: common/models.py:2000
+#: common/models.py:2010
msgid "Header of this message"
msgstr ""
-#: common/models.py:2006
+#: common/models.py:2016
msgid "Body"
msgstr ""
-#: common/models.py:2007
+#: common/models.py:2017
msgid "Body of this message"
msgstr ""
-#: common/models.py:2016
+#: common/models.py:2026
msgid "Endpoint on which this message was received"
msgstr ""
-#: common/models.py:2021
+#: common/models.py:2031
msgid "Worked on"
msgstr ""
-#: common/models.py:2022
+#: common/models.py:2032
msgid "Was the work on this message finished?"
msgstr ""
@@ -3032,7 +3040,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:401
#: templates/email/overdue_sales_order.html:16
#: templates/js/translated/company.js:393 templates/js/translated/order.js:2513
-#: templates/js/translated/stock.js:2491
+#: templates/js/translated/stock.js:2550
#: templates/js/translated/table_filters.js:427
msgid "Customer"
msgstr ""
@@ -3320,7 +3328,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:212
#: company/templates/company/supplier_part.html:326
-#: part/templates/part/prices.html:276 templates/js/translated/part.js:2168
+#: part/templates/part/prices.html:276 templates/js/translated/part.js:2224
msgid "Add Price Break"
msgstr ""
@@ -3329,12 +3337,12 @@ msgid "No price break information found"
msgstr ""
#: company/templates/company/supplier_part.html:252
-#: templates/js/translated/part.js:2178
+#: templates/js/translated/part.js:2234
msgid "Delete Price Break"
msgstr ""
#: company/templates/company/supplier_part.html:266
-#: templates/js/translated/part.js:2192
+#: templates/js/translated/part.js:2248
msgid "Edit Price Break"
msgstr ""
@@ -3389,7 +3397,7 @@ msgstr ""
#: stock/templates/stock/location.html:173
#: stock/templates/stock/location_sidebar.html:7
#: templates/InvenTree/search.html:153 templates/js/translated/search.js:223
-#: templates/js/translated/stock.js:2368 users/models.py:40
+#: templates/js/translated/stock.js:2427 users/models.py:40
msgid "Stock Items"
msgstr ""
@@ -3647,7 +3655,7 @@ msgstr ""
#: templates/email/overdue_purchase_order.html:15
#: templates/js/translated/order.js:936 templates/js/translated/order.js:1691
#: templates/js/translated/part.js:968 templates/js/translated/stock.js:1909
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2531
msgid "Purchase Order"
msgstr ""
@@ -4207,47 +4215,47 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:505
+#: part/api.py:514
msgid "Incoming Purchase Order"
msgstr ""
-#: part/api.py:525
+#: part/api.py:534
msgid "Outgoing Sales Order"
msgstr ""
-#: part/api.py:543
+#: part/api.py:552
msgid "Stock produced by Build Order"
msgstr ""
-#: part/api.py:575
+#: part/api.py:584
msgid "Stock required for Build Order"
msgstr ""
-#: part/api.py:695
+#: part/api.py:704
msgid "Valid"
msgstr ""
-#: part/api.py:696
+#: part/api.py:705
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:702
+#: part/api.py:711
msgid "This option must be selected"
msgstr ""
-#: part/api.py:1125
+#: part/api.py:1134
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:1129
+#: part/api.py:1138
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:1144
+#: part/api.py:1153
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:1175 part/api.py:1179 part/api.py:1194 part/api.py:1198
+#: part/api.py:1184 part/api.py:1188 part/api.py:1203 part/api.py:1207
msgid "This field is required"
msgstr ""
@@ -4306,7 +4314,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/part.js:1890 templates/js/translated/search.js:144
+#: templates/js/translated/part.js:1946 templates/js/translated/search.js:144
#: templates/navbar.html:24 users/models.py:38
msgid "Parts"
msgstr ""
@@ -4496,7 +4504,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2295 templates/js/translated/part.js:1941
+#: part/models.py:2295 templates/js/translated/part.js:1997
#: templates/js/translated/stock.js:1336
msgid "Test Name"
msgstr ""
@@ -4513,7 +4521,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2307 templates/js/translated/part.js:1950
+#: part/models.py:2307 templates/js/translated/part.js:2006
#: templates/js/translated/table_filters.js:302
msgid "Required"
msgstr ""
@@ -4522,7 +4530,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2313 templates/js/translated/part.js:1958
+#: part/models.py:2313 templates/js/translated/part.js:2014
msgid "Requires Value"
msgstr ""
@@ -4530,7 +4538,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2319 templates/js/translated/part.js:1965
+#: part/models.py:2319 templates/js/translated/part.js:2021
msgid "Requires Attachment"
msgstr ""
@@ -5868,7 +5876,7 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:51
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2400
+#: templates/js/translated/order.js:1733 templates/js/translated/stock.js:2459
msgid "Date"
msgstr ""
@@ -5887,19 +5895,19 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
#: templates/js/translated/stock.js:606 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:2649
+#: templates/js/translated/stock.js:2708
msgid "Serial"
msgstr ""
-#: stock/api.py:521
+#: stock/api.py:529
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:528
+#: stock/api.py:536
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:553
+#: stock/api.py:561
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
@@ -6303,7 +6311,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2793
+#: stock/templates/stock/item.html:152 templates/js/translated/stock.js:2852
msgid "Install Stock Item"
msgstr ""
@@ -8309,8 +8317,8 @@ msgid "No builds matching query"
msgstr ""
#: templates/js/translated/build.js:2449 templates/js/translated/part.js:1383
-#: templates/js/translated/part.js:1851 templates/js/translated/stock.js:1682
-#: templates/js/translated/stock.js:2338
+#: templates/js/translated/part.js:1895 templates/js/translated/stock.js:1682
+#: templates/js/translated/stock.js:2382
msgid "Select"
msgstr ""
@@ -8322,7 +8330,7 @@ msgstr ""
msgid "Progress"
msgstr ""
-#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2579
+#: templates/js/translated/build.js:2527 templates/js/translated/stock.js:2638
msgid "No user information"
msgstr ""
@@ -8916,7 +8924,7 @@ msgstr ""
#: templates/js/translated/order.js:2001 templates/js/translated/order.js:2203
#: templates/js/translated/order.js:3542 templates/js/translated/order.js:4050
-#: templates/js/translated/part.js:2070 templates/js/translated/part.js:2423
+#: templates/js/translated/part.js:2126 templates/js/translated/part.js:2479
msgid "Unit Price"
msgstr ""
@@ -9316,8 +9324,8 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1786
-#: templates/js/translated/stock.js:2299
+#: templates/js/translated/part.js:1573 templates/js/translated/part.js:1816
+#: templates/js/translated/stock.js:2343
msgid "Display as list"
msgstr ""
@@ -9341,71 +9349,75 @@ msgstr ""
msgid "Category is required"
msgstr ""
-#: templates/js/translated/part.js:1805 templates/js/translated/stock.js:2318
+#: templates/js/translated/part.js:1835 templates/js/translated/stock.js:2362
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1869
+#: templates/js/translated/part.js:1914
+msgid "Load Subcategories"
+msgstr ""
+
+#: templates/js/translated/part.js:1925
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1927
+#: templates/js/translated/part.js:1983
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1978 templates/js/translated/stock.js:1295
+#: templates/js/translated/part.js:2034 templates/js/translated/stock.js:1295
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1979 templates/js/translated/stock.js:1296
+#: templates/js/translated/part.js:2035 templates/js/translated/stock.js:1296
#: templates/js/translated/stock.js:1556
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1985
+#: templates/js/translated/part.js:2041
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:2007
+#: templates/js/translated/part.js:2063
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2021
+#: templates/js/translated/part.js:2077
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:2046
+#: templates/js/translated/part.js:2102
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:2103
+#: templates/js/translated/part.js:2159
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2104
+#: templates/js/translated/part.js:2160
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:2218
+#: templates/js/translated/part.js:2274
msgid "Current Stock"
msgstr ""
-#: templates/js/translated/part.js:2251
+#: templates/js/translated/part.js:2307
msgid "No scheduling information available for this part"
msgstr ""
-#: templates/js/translated/part.js:2277
+#: templates/js/translated/part.js:2333
msgid "Scheduled Stock Quantities"
msgstr ""
-#: templates/js/translated/part.js:2347
+#: templates/js/translated/part.js:2403
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2366
+#: templates/js/translated/part.js:2422
msgid "Single Price Difference"
msgstr ""
@@ -9796,75 +9808,79 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2425
+#: templates/js/translated/stock.js:2400
+msgid "Load Subloactions"
+msgstr ""
+
+#: templates/js/translated/stock.js:2484
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2441
+#: templates/js/translated/stock.js:2500
msgid "Part information unavailable"
msgstr ""
-#: templates/js/translated/stock.js:2463
+#: templates/js/translated/stock.js:2522
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2482
+#: templates/js/translated/stock.js:2541
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2501
+#: templates/js/translated/stock.js:2560
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2519
+#: templates/js/translated/stock.js:2578
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2542
+#: templates/js/translated/stock.js:2601
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2550
+#: templates/js/translated/stock.js:2609
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2626
+#: templates/js/translated/stock.js:2685
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2677 templates/js/translated/stock.js:2713
+#: templates/js/translated/stock.js:2736 templates/js/translated/stock.js:2772
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2785
msgid "Select stock item to uninstall"
msgstr ""
-#: templates/js/translated/stock.js:2747
+#: templates/js/translated/stock.js:2806
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2748
+#: templates/js/translated/stock.js:2807
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2750
+#: templates/js/translated/stock.js:2809
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2751
+#: templates/js/translated/stock.js:2810
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2752
+#: templates/js/translated/stock.js:2811
msgid "The Stock Item is not already installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/stock.js:2812
msgid "The Stock Item is tracked by either a batch code or serial number"
msgstr ""
-#: templates/js/translated/stock.js:2766
+#: templates/js/translated/stock.js:2825
msgid "Select part to install"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index afdb862698..895aec9754 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "Конечная точка API не обнаружена"
@@ -25,11 +25,11 @@ msgstr "Конечная точка API не обнаружена"
msgid "Error details can be found in the admin panel"
msgstr "Подробности об ошибке можно найти в панели администратора"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Введите дату"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Подтверждение адреса электронной почт
msgid "You must type the same email each time."
msgstr "Вы должны вводить один и тот же адрес электронной почты."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr "Изображение слишком большое"
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Повторяющийся серийный номер: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Недопустимая/несуществующая группа {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Венгерский"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Китайский"
@@ -5516,11 +5516,11 @@ msgstr "Создать новую разновидность детали"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Создать новую разновидность из шаблона '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr "Неизвестная база данных"
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 979cdaaa12..7b49ae95e6 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API-slutpunkt hittades inte"
@@ -25,11 +25,11 @@ msgstr "API-slutpunkt hittades inte"
msgid "Error details can be found in the admin panel"
msgstr "Information om felet finns under Error i adminpanelen"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Ange datum"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Bekräfta e-postadress"
msgid "You must type the same email each time."
msgstr "Du måste ange samma e-post varje gång."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Serienummret finns redan: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Tom serienummersträng"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "Ogiltigt gruppområde: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ogiltig grupp: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "Ogiltig gruppsekvens: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Inga serienummer hittades"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "Tjeckiska"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "Spanska (Mexikanska)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "Farsi / Persiska"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Ungerska"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "Portugisiska"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "Portugisiska (brasiliansk)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Kinesiska"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 7e92bac3e4..1933f91ed8 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:04\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr ""
@@ -25,11 +25,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index fc376514e1..a94406bf5f 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "API uç noktası bulunamadı"
@@ -25,11 +25,11 @@ msgstr "API uç noktası bulunamadı"
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "Tarih giriniz"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "E-posta adresi onayı"
msgid "You must type the same email each time."
msgstr "Her seferind eaynı e-posta adresini yazmalısınız."
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "Tekrarlanan seri no:{sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "Geçersiz grup: {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "İspanyolca(Meksika)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "Macarca"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "Vietnamca"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "Çince"
@@ -5516,11 +5516,11 @@ msgstr "Yeni parça çeşidi oluştur"
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 88e09d4efc..3b02bec27b 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr ""
@@ -25,11 +25,11 @@ msgstr ""
msgid "Error details can be found in the admin panel"
msgstr ""
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr ""
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr ""
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr ""
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr ""
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr ""
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr ""
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr ""
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr ""
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr ""
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr ""
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr ""
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr ""
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr ""
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr ""
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index aed7c4b206..e42c5afe31 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: 2022-08-04 22:08+0000\n"
-"PO-Revision-Date: 2022-08-05 01:02\n"
+"POT-Creation-Date: 2022-08-07 21:57+0000\n"
+"PO-Revision-Date: 2022-08-08 13:03\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -17,7 +17,7 @@ msgstr ""
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 154\n"
-#: InvenTree/api.py:52
+#: InvenTree/api.py:54
msgid "API endpoint not found"
msgstr "未找到 API 端点"
@@ -25,11 +25,11 @@ msgstr "未找到 API 端点"
msgid "Error details can be found in the admin panel"
msgstr "在管理面板中可以找到错误详细信息"
-#: InvenTree/fields.py:108
+#: InvenTree/fields.py:109
msgid "Enter date"
msgstr "输入日期"
-#: InvenTree/fields.py:185 build/serializers.py:384
+#: InvenTree/fields.py:186 build/serializers.py:384
#: build/templates/build/sidebar.html:21 company/models.py:523
#: company/templates/company/sidebar.html:25 order/models.py:906
#: order/templates/order/po_sidebar.html:11
@@ -89,76 +89,76 @@ msgstr "Email 地址确认"
msgid "You must type the same email each time."
msgstr "您必须输入相同的 Email 。"
-#: InvenTree/helpers.py:172
+#: InvenTree/helpers.py:173
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers.py:176 InvenTree/helpers.py:181
+#: InvenTree/helpers.py:177 InvenTree/helpers.py:182
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers.py:178
+#: InvenTree/helpers.py:179
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers.py:186
+#: InvenTree/helpers.py:187
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers.py:189
+#: InvenTree/helpers.py:190
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers.py:201
+#: InvenTree/helpers.py:202
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers.py:206
+#: InvenTree/helpers.py:207
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers.py:214
+#: InvenTree/helpers.py:215
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
-#: InvenTree/helpers.py:573
+#: InvenTree/helpers.py:584
#, python-brace-format
msgid "Duplicate serial: {sn}"
msgstr "重复的序列号: {sn}"
-#: InvenTree/helpers.py:580 order/models.py:320 order/models.py:472
+#: InvenTree/helpers.py:591 order/models.py:320 order/models.py:472
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
-#: InvenTree/helpers.py:583
+#: InvenTree/helpers.py:594
msgid "Empty serial number string"
msgstr "空序列号字符串"
-#: InvenTree/helpers.py:615
+#: InvenTree/helpers.py:626
#, python-brace-format
msgid "Invalid group range: {g}"
msgstr "无效的组范围: {g}"
-#: InvenTree/helpers.py:618
+#: InvenTree/helpers.py:629
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "无效的群组: {g}"
-#: InvenTree/helpers.py:646
+#: InvenTree/helpers.py:657
#, python-brace-format
msgid "Invalid group sequence: {g}"
msgstr "无效的组序列: {g}"
-#: InvenTree/helpers.py:654
+#: InvenTree/helpers.py:665
#, python-brace-format
msgid "Invalid/no group {group}"
msgstr "无效的群组: {group}"
-#: InvenTree/helpers.py:660
+#: InvenTree/helpers.py:671
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:664
+#: InvenTree/helpers.py:675
#, python-brace-format
msgid "Number of unique serial numbers ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
@@ -398,99 +398,99 @@ msgstr ""
msgid "Downloading images from remote URL is not enabled"
msgstr ""
-#: InvenTree/settings.py:607
+#: InvenTree/settings.py:609
msgid "Czech"
msgstr "捷克语"
-#: InvenTree/settings.py:608
+#: InvenTree/settings.py:610
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:609
+#: InvenTree/settings.py:611
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:610
+#: InvenTree/settings.py:612
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:611
+#: InvenTree/settings.py:613
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:612
+#: InvenTree/settings.py:614
msgid "Spanish (Mexican)"
msgstr "西班牙语(墨西哥)"
-#: InvenTree/settings.py:613
+#: InvenTree/settings.py:615
msgid "Farsi / Persian"
msgstr "波斯语"
-#: InvenTree/settings.py:614
+#: InvenTree/settings.py:616
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:615
+#: InvenTree/settings.py:617
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:616
+#: InvenTree/settings.py:618
msgid "Hungarian"
msgstr "匈牙利语"
-#: InvenTree/settings.py:617
+#: InvenTree/settings.py:619
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:618
+#: InvenTree/settings.py:620
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:619
+#: InvenTree/settings.py:621
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:620
+#: InvenTree/settings.py:622
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:621
+#: InvenTree/settings.py:623
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:622
+#: InvenTree/settings.py:624
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:623
+#: InvenTree/settings.py:625
msgid "Portuguese"
msgstr "葡萄牙语"
-#: InvenTree/settings.py:624
+#: InvenTree/settings.py:626
msgid "Portuguese (Brazilian)"
msgstr "葡萄牙语 (巴西)"
-#: InvenTree/settings.py:625
+#: InvenTree/settings.py:627
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:626
+#: InvenTree/settings.py:628
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:627
+#: InvenTree/settings.py:629
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:628
+#: InvenTree/settings.py:630
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:629
+#: InvenTree/settings.py:631
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:630
+#: InvenTree/settings.py:632
msgid "Chinese"
msgstr "中文(简体)"
@@ -5516,11 +5516,11 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:157
+#: part/templatetags/inventree_extras.py:177
msgid "Unknown database"
msgstr ""
-#: part/templatetags/inventree_extras.py:202
+#: part/templatetags/inventree_extras.py:222
#, python-brace-format
msgid "{title} v{version}"
msgstr ""