diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 9171cd89f3..7600a6a109 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -137,8 +137,8 @@ msgstr "Ungültige Auswahl"
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Name"
@@ -159,9 +159,9 @@ msgstr "Name"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Anzahl"
@@ -714,8 +714,8 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Teil"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr "Preis"
@@ -2207,7 +2207,7 @@ msgstr "Anlaufstelle"
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr "Link"
@@ -2309,7 +2309,7 @@ msgstr "Parametername"
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr "Wert"
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr "Parameterwert"
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr "Einheiten"
@@ -2466,13 +2466,13 @@ msgstr "Zuliefererteile"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
@@ -2688,8 +2688,8 @@ msgstr "Herstellerteil-Bestand"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr "Lagerbestand"
@@ -2767,7 +2767,7 @@ msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2775,11 +2775,11 @@ msgstr "Preisstaffel hinzufügen"
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
@@ -3214,14 +3214,14 @@ msgstr "Bestellung bearbeiten"
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr "Neuer Lagerort"
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr "Neuen Lagerort anlegen"
@@ -3444,7 +3444,7 @@ msgstr "Summe"
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr "Stück-Preis"
@@ -3484,7 +3484,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Teile"
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr "Bestellnummer"
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr "Bestellt"
@@ -4034,7 +4034,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr "Kategorie"
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr "Teile-Kategorie"
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr "Revision"
@@ -4163,7 +4163,7 @@ msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
msgid "Test with this name already exists for this part"
msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil"
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr "Test-Name"
@@ -4180,7 +4180,7 @@ msgstr "Test-Beschreibung"
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Benötigt"
@@ -4189,7 +4189,7 @@ msgstr "Benötigt"
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr "Erfordert Wert"
@@ -4197,7 +4197,7 @@ msgstr "Erfordert Wert"
msgid "Does this test require a value when adding a test result?"
msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
@@ -4429,7 +4429,7 @@ msgstr "Damit wird jede Zeile der Stückliste kontrolliert"
msgid "All parts"
msgstr "Alle Teile"
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
@@ -4503,36 +4503,16 @@ msgstr "Rasteransicht anzeigen"
msgid "Part Parameters"
msgstr "Teilparameter"
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr "Neuen Lagerort anlegen"
-
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr "Neue Kategorie"
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr "Teil-Kategorie anlegen"
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Create new Part Category"
+msgid "Create Part Category"
msgstr "Neue Teil-Kategorie anlegen"
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr "Übergeordnete Kategorie auswählen"
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr "Teil-Kategorie bearbeiten"
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr "Sind Sie sicher, dass Sie diese Kategorie löschen wollen"
@@ -4793,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr "Teil ist virtuell (kein physisches Teil)"
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr "Inaktiv"
@@ -4880,8 +4860,8 @@ msgstr "Zu Bauaufträgen zugeordnet"
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr "Im Bau"
@@ -5036,7 +5016,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr "Interne Kosten"
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5057,7 +5037,7 @@ msgid "Set category for the following parts"
msgstr "Kategorie für Teile setzen"
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5183,6 +5163,10 @@ msgstr "Teilparametervorlage bearbeiten"
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr "Teil-Kategorie bearbeiten"
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
@@ -5191,35 +5175,35 @@ msgstr "Teil-Kategorie löschen"
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -6004,6 +5988,10 @@ msgstr "Druck Aktionen"
msgid "Print labels"
msgstr "Label drucken"
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr "Neuen Lagerort anlegen"
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?"
@@ -6885,8 +6873,8 @@ msgstr "Bestand bestellen"
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr "Auswählen"
@@ -6968,34 +6956,34 @@ msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr "Vorlagenteil"
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr "Parameter löschen"
@@ -7227,91 +7215,101 @@ msgstr "JA"
msgid "NO"
msgstr "NEIN"
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+#, fuzzy
+#| msgid "Select part category"
+msgid "Parent part category"
+msgstr "Teil-Kategorie wählen"
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr "Neue Kategorie"
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr "Neue Teil-Kategorie anlegen"
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr "Teil bearbeiten"
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr "Favoritenteil"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
@@ -8068,6 +8066,12 @@ msgstr "Berechtigungen Einträge zu ändern"
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+#~ msgid "Create new category"
+#~ msgstr "Teil-Kategorie anlegen"
+
+#~ msgid "Select parent category"
+#~ msgstr "Übergeordnete Kategorie auswählen"
+
#~ msgid "Single Price - %(currency)s"
#~ msgstr "Einzelpreis - %(currency)s"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index b01e877cbe..fbb680450b 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 064a71b2d4..e7855399cd 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -138,8 +138,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -160,9 +160,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -547,8 +547,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -715,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2071,7 +2071,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2206,7 +2206,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2308,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,7 +2318,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2465,13 +2465,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2687,8 +2687,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2766,7 +2766,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2774,11 +2774,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3213,14 +3213,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3443,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3483,7 +3483,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3497,7 +3497,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4033,7 +4033,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4042,7 +4042,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4055,7 +4055,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4162,7 +4162,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4179,7 +4179,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4188,7 +4188,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4196,7 +4196,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4428,7 +4428,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4502,36 +4502,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4789,8 +4767,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4876,8 +4854,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5032,7 +5010,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5053,7 +5031,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5179,6 +5157,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5187,35 +5169,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5984,6 +5966,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6865,8 +6851,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6948,34 +6934,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7207,91 +7193,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 70377b260f..011bace7cd 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Nombre"
@@ -159,9 +159,9 @@ msgstr "Nombre"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Cantidad"
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Parte"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2207,7 +2207,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2309,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2466,13 +2466,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3214,14 +3214,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3444,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3484,7 +3484,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4034,7 +4034,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4163,7 +4163,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4180,7 +4180,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4189,7 +4189,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4197,7 +4197,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4429,7 +4429,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4503,36 +4503,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "Seleccionar Categoría"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4790,8 +4770,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4877,8 +4857,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5033,7 +5013,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5054,7 +5034,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5180,6 +5160,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5188,35 +5172,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5987,6 +5971,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6868,8 +6856,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6951,34 +6939,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7210,91 +7198,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 9d77683d6e..cdeab8f26d 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Nom"
@@ -159,9 +159,9 @@ msgstr "Nom"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Quantité"
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Pièce"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2207,7 +2207,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2309,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2466,13 +2466,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3214,14 +3214,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3444,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3484,7 +3484,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4034,7 +4034,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr "IPN"
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4163,7 +4163,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4180,7 +4180,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4189,7 +4189,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4197,7 +4197,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4429,7 +4429,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4503,36 +4503,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "Sélectionnez une catégorie"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4790,8 +4770,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4877,8 +4857,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5033,7 +5013,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5054,7 +5034,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5180,6 +5160,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5188,35 +5172,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5987,6 +5971,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6868,8 +6856,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6951,34 +6939,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7210,91 +7198,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 130c564f37..f024fb2921 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index ceb5f78ae3..3e86aa198d 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 8959a19a28..7f6afa6fcd 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 7229e5e79d..8e8ee886f1 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -137,8 +137,8 @@ msgstr "無効な選択です"
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "お名前"
@@ -159,9 +159,9 @@ msgstr "お名前"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "パーツ"
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr "サプライヤー・パーツ"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "新しいサプライヤー・パーツを作成"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
@@ -2686,8 +2686,8 @@ msgstr "メーカー・パーツの在庫"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr "%(order)s - %(desc)s の未処理のパーツを受け取
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "パーツ"
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr "全てのパーツ"
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "カテゴリの選択"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4768,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4855,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5011,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5032,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5158,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5170,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5967,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6852,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6935,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7194,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 58fc63eb36..e3075c5e0e 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index d677124e41..5f8c97990b 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
@@ -137,8 +137,8 @@ msgstr "Ongeldige keuze"
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Naam"
@@ -159,9 +159,9 @@ msgstr "Naam"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Aantal"
@@ -714,8 +714,8 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Onderdeel"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2207,7 +2207,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2309,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2466,13 +2466,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3214,14 +3214,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3444,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3484,7 +3484,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4034,7 +4034,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4163,7 +4163,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4180,7 +4180,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4189,7 +4189,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4197,7 +4197,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4429,7 +4429,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4503,36 +4503,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "Categorie selecteren"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4790,8 +4770,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4877,8 +4857,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5033,7 +5013,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5054,7 +5034,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5180,6 +5160,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5188,35 +5172,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5985,6 +5969,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6866,8 +6854,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6949,34 +6937,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7208,91 +7196,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 8eb02ea93c..071ec5f5d3 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
@@ -137,8 +137,8 @@ msgstr "Ugyldig valg"
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Navn"
@@ -159,9 +159,9 @@ msgstr "Navn"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "Velg kategori"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4768,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4855,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5011,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5032,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5158,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5170,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5967,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6852,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6935,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7194,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index c3f251478d..d3a6c45763 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -137,8 +137,8 @@ msgstr "Błędny wybór"
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Nazwa"
@@ -159,9 +159,9 @@ msgstr "Nazwa"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Ilość"
@@ -714,8 +714,8 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Część"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr "Cena"
@@ -2207,7 +2207,7 @@ msgstr "Punkt kontaktowy"
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr "Łącze"
@@ -2309,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr "Jednostki"
@@ -2466,13 +2466,13 @@ msgstr "Komponenty dostawcy"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr "Nowy dostawca części"
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr "Stan"
@@ -2767,7 +2767,7 @@ msgstr "Informacja cenowa"
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
@@ -3214,14 +3214,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr "Nowa lokalizacja"
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3444,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr "Cena jednostkowa"
@@ -3484,7 +3484,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Części"
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr "Kod zamówienia"
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4034,7 +4034,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr "Kategoria"
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr "IPN"
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr "Wersja"
@@ -4163,7 +4163,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr "Nazwa testu"
@@ -4180,7 +4180,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Wymagane"
@@ -4189,7 +4189,7 @@ msgstr "Wymagane"
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4197,7 +4197,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4429,7 +4429,7 @@ msgstr ""
msgid "All parts"
msgstr "Wszystkie części"
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr "Stwórz nową kategorię komponentów"
@@ -4503,36 +4503,16 @@ msgstr ""
msgid "Part Parameters"
msgstr "Parametry części"
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr "Nowa kategoria"
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr "Utwórz nową kategorię"
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Create new Part Category"
+msgid "Create Part Category"
msgstr "Utwórz nową kategorię części"
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr "Wybierz kategorię nadrzędną"
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr "Edytuj kategorię części"
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr "Czy na pewno chcesz usunąć tę kategorię?"
@@ -4790,8 +4770,8 @@ msgid "Part is virtual (not a physical part)"
msgstr "Część jest wirtualna (nie fizyczna)"
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr "Nieaktywny"
@@ -4877,8 +4857,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5033,7 +5013,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5054,7 +5034,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5180,6 +5160,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr "Edytuj kategorię części"
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5188,35 +5172,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5989,6 +5973,10 @@ msgstr ""
msgid "Print labels"
msgstr "Drukuj etykiety"
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "Czy na pewno chcesz skasować tą lokację?"
@@ -6870,8 +6858,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6953,34 +6941,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7212,91 +7200,101 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+#, fuzzy
+#| msgid "Select part category"
+msgid "Parent part category"
+msgstr "Wybierz kategorię części"
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr "Nowa kategoria"
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
@@ -8052,3 +8050,9 @@ msgstr "Uprawnienie do edycji przedmiotów"
#: users/models.py:194
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
+
+#~ msgid "Create new category"
+#~ msgstr "Utwórz nową kategorię"
+
+#~ msgid "Select parent category"
+#~ msgstr "Wybierz kategorię nadrzędną"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 29aa0a65e3..87f8c5959f 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Название"
@@ -159,9 +159,9 @@ msgstr "Название"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Количество"
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Детали"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2207,7 +2207,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2309,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2466,13 +2466,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3214,14 +3214,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3444,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3484,7 +3484,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4034,7 +4034,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4163,7 +4163,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4180,7 +4180,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4189,7 +4189,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4197,7 +4197,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4429,7 +4429,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4503,36 +4503,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "Выбрать категорию"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4790,8 +4770,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4877,8 +4857,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5033,7 +5013,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5054,7 +5034,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5180,6 +5160,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5188,35 +5172,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5987,6 +5971,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6868,8 +6856,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6951,34 +6939,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7210,91 +7198,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 6ea3b2636c..2ab74957af 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index ef270ee0fb..26e5396fcb 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 28cb2041c8..f29bdfcbeb 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Adı"
@@ -159,9 +159,9 @@ msgstr "Adı"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Miktar"
@@ -714,8 +714,8 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Parça"
@@ -2072,7 +2072,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2207,7 +2207,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2309,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2319,7 +2319,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2466,13 +2466,13 @@ msgstr "Tedarikçi Parçaları"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "Yeni tedarikçi parçası oluştur"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr "Stok"
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3214,14 +3214,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr "Yeni Konum"
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr "Yeni stok konumu oluştur"
@@ -3444,7 +3444,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3484,7 +3484,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Parçalar"
@@ -3498,7 +3498,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4034,7 +4034,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4043,7 +4043,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr "DPN"
@@ -4056,7 +4056,7 @@ msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr "Revizyon"
@@ -4163,7 +4163,7 @@ msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabili
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4180,7 +4180,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Gerekli"
@@ -4189,7 +4189,7 @@ msgstr "Gerekli"
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4197,7 +4197,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4429,7 +4429,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4503,36 +4503,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr "Yeni konum oluştur"
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Set Category"
+msgid "Create Part Category"
+msgstr "Kategori Ayarla"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4790,8 +4770,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4877,8 +4857,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5033,7 +5013,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5054,7 +5034,7 @@ msgid "Set category for the following parts"
msgstr "Aşağıdaki parçalara kategori ayarla"
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr "Stok Yok"
@@ -5180,6 +5160,10 @@ msgstr "Parça Parametre Şablonu Düzenle"
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5188,35 +5172,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5997,6 +5981,10 @@ msgstr "Yazdırma İşlemleri"
msgid "Print labels"
msgstr "Etiketleri yazdır"
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr "Yeni konum oluştur"
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?"
@@ -6878,8 +6866,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6961,34 +6949,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr "Şablon Parça"
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7220,91 +7208,101 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+#, fuzzy
+#| msgid "Set category"
+msgid "Parent part category"
+msgstr "Kategori ayarla"
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 45637e361a..81974db922 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,14 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
+#: part/templates/part/category.html:253
+msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4766,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4853,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5009,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5030,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5156,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5168,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5965,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6850,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6933,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7192,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 7a1064c432..d3770f1803 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-08-03 23:04+0000\n"
+"POT-Creation-Date: 2021-08-04 01:53+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:718 part/models.py:2246
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:206
-#: templates/js/translated/part.js:339 templates/js/translated/part.js:831
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "名称"
@@ -159,9 +159,9 @@ msgstr "名称"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:265
-#: templates/js/translated/part.js:449 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:911
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
+#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
+#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1016
-#: templates/js/translated/part.js:1138 templates/js/translated/part.js:1194
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
+#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -714,8 +714,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:163
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:430
-#: templates/js/translated/part.js:593 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
+#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -2070,7 +2070,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1021
+#: templates/js/translated/part.js:1052
msgid "Price"
msgstr ""
@@ -2205,7 +2205,7 @@ msgstr ""
#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:687
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
msgid "Link"
msgstr ""
@@ -2307,7 +2307,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:348
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,7 +2317,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:354
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
msgid "Units"
msgstr ""
@@ -2464,13 +2464,13 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:79
+#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:78
+#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
msgid "New Supplier Part"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:269 templates/js/translated/part.js:494
-#: templates/js/translated/part.js:654 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
+#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2259
+#: part/templates/part/prices.html:253 part/views.py:2216
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2321
+#: company/templates/company/supplier_part.html:199 part/views.py:2278
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2307
+#: company/templates/company/supplier_part.html:213 part/views.py:2264
msgid "Edit Price Break"
msgstr ""
@@ -3212,14 +3212,14 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:255 part/templates/part/category.html:297
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:64
+#: part/templates/part/category.html:279
+#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:65
+#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:996 templates/js/translated/part.js:1185
+#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
msgid "Unit Price"
msgstr ""
@@ -3482,7 +3482,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:855 templates/navbar.html:23
+#: templates/js/translated/part.js:886 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:670
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
msgid "On Order"
msgstr ""
@@ -4032,7 +4032,7 @@ msgstr ""
#: part/models.py:755 part/models.py:2323
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:641
+#: templates/js/translated/part.js:672
msgid "Category"
msgstr ""
@@ -4041,7 +4041,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:257 templates/js/translated/part.js:485
+#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
msgid "IPN"
msgstr ""
@@ -4054,7 +4054,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:261
+#: report/models.py:200 templates/js/translated/part.js:292
msgid "Revision"
msgstr ""
@@ -4161,7 +4161,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:906
+#: part/models.py:2179 templates/js/translated/part.js:937
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
@@ -4178,7 +4178,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:915
+#: part/models.py:2191 templates/js/translated/part.js:946
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4187,7 +4187,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:923
+#: part/models.py:2197 templates/js/translated/part.js:954
msgid "Requires Value"
msgstr ""
@@ -4195,7 +4195,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:930
+#: part/models.py:2203 templates/js/translated/part.js:961
msgid "Requires Attachment"
msgstr ""
@@ -4427,7 +4427,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:38 part/views.py:1912
+#: part/templates/part/category.html:38
msgid "Create new part category"
msgstr ""
@@ -4501,36 +4501,16 @@ msgstr ""
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:256
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+#: part/templates/part/category.html:253
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part Category"
+msgstr "选择分类"
-#: part/templates/part/category.html:261 part/templates/part/category.html:291
-#: templates/js/translated/part.js:25
-msgid "New Category"
-msgstr ""
-
-#: part/templates/part/category.html:262
-msgid "Create new category"
-msgstr ""
-
-#: part/templates/part/category.html:292
-msgid "Create new Part Category"
-msgstr ""
-
-#: part/templates/part/category.html:298 stock/views.py:959
+#: part/templates/part/category.html:280 stock/views.py:959
msgid "Create new Stock Location"
msgstr ""
-#: part/templates/part/category.html:317
-msgid "Select parent category"
-msgstr ""
-
-#: part/templates/part/category.html:324 part/views.py:1860
-msgid "Edit Part Category"
-msgstr ""
-
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
msgstr ""
@@ -4788,8 +4768,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:172
-#: templates/js/translated/part.js:249
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
+#: templates/js/translated/part.js:280
msgid "Inactive"
msgstr ""
@@ -4875,8 +4855,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:501
-#: templates/js/translated/part.js:674
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
+#: templates/js/translated/part.js:705
msgid "Building"
msgstr ""
@@ -5031,7 +5011,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2330
+#: part/templates/part/prices.html:197 part/views.py:2287
msgid "Add Internal Price Break"
msgstr ""
@@ -5052,7 +5032,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:239
-#: templates/js/translated/part.js:491 templates/js/translated/part.js:678
+#: templates/js/translated/part.js:522 templates/js/translated/part.js:709
msgid "No Stock"
msgstr ""
@@ -5178,6 +5158,10 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
+#: part/views.py:1860 templates/js/translated/part.js:41
+msgid "Edit Part Category"
+msgstr ""
+
#: part/views.py:1898
msgid "Delete Part Category"
msgstr ""
@@ -5186,35 +5170,35 @@ msgstr ""
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1956
+#: part/views.py:1913
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2057
+#: part/views.py:2014
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2113
+#: part/views.py:2070
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2132
+#: part/views.py:2089
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2202
+#: part/views.py:2159
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2263
+#: part/views.py:2220
msgid "Added new price break"
msgstr ""
-#: part/views.py:2339
+#: part/views.py:2296
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2347
+#: part/views.py:2304
msgid "Delete Internal Price Break"
msgstr ""
@@ -5983,6 +5967,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:251
+msgid "Create new location"
+msgstr ""
+
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
@@ -6864,8 +6852,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:579
-#: templates/js/translated/part.js:824 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6947,34 +6935,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:156
-#: templates/js/translated/part.js:241
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
+#: templates/js/translated/part.js:272
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:160
-#: templates/js/translated/part.js:245
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
+#: templates/js/translated/part.js:276
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:330
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:371
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:372
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:389
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:401
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
msgid "Delete Parameter"
msgstr ""
@@ -7206,91 +7194,99 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:26
+#: templates/js/translated/part.js:20
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:56
+msgid "New Category"
+msgstr ""
+
+#: templates/js/translated/part.js:57
msgid "Create New Part Category"
msgstr ""
-#: templates/js/translated/part.js:34
+#: templates/js/translated/part.js:65
msgid "New Parent"
msgstr ""
-#: templates/js/translated/part.js:97
+#: templates/js/translated/part.js:128
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:148 templates/js/translated/part.js:233
+#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:152 templates/js/translated/part.js:237
+#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:195
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:199
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:313
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:469 templates/js/translated/part.js:708
+#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:647
+#: templates/js/translated/part.js:678
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:665
+#: templates/js/translated/part.js:696
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:849 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:892
+#: templates/js/translated/part.js:923
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:943 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:944 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:950
+#: templates/js/translated/part.js:981
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:975
+#: templates/js/translated/part.js:1006
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1028
+#: templates/js/translated/part.js:1059
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1029
+#: templates/js/translated/part.js:1060
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1129
+#: templates/js/translated/part.js:1160
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1179
msgid "Single Price Difference"
msgstr ""