diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 202364323a..dcc70771b1 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 22:02\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -36,7 +36,7 @@ msgstr "Datum eingeben"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Bestätigen"
@@ -137,8 +137,8 @@ msgstr "Ungültige Auswahl"
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Name"
@@ -159,9 +159,9 @@ msgstr "Name"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Anzahl"
@@ -594,8 +594,9 @@ msgstr "Bauauftrag als vollständig markieren"
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr "Lagerort"
@@ -714,8 +715,8 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Teil"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr "Preis"
@@ -2222,7 +2223,7 @@ msgstr "Anlaufstelle"
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr "Link"
@@ -2282,11 +2283,11 @@ msgstr "Teil auswählen"
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
@@ -2294,11 +2295,11 @@ msgstr "Hersteller auswählen"
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr "MPN"
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
@@ -2324,7 +2325,7 @@ msgstr "Parametername"
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr "Wert"
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr "Parameterwert"
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr "Einheiten"
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr "Zulieferer auswählen"
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
@@ -2706,8 +2708,8 @@ msgstr "Herstellerteil-Bestand"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr "Lagerbestand"
@@ -3461,7 +3463,7 @@ msgstr "Summe"
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr "Stück-Preis"
@@ -3493,7 +3495,7 @@ msgstr "Berichte drucken"
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,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:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Teile"
@@ -3515,7 +3517,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:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr "Bestellt"
@@ -3818,6 +3820,26 @@ msgstr "Stückpreis für {part} auf {price} aktualisiert"
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
+#: part/api.py:700
+#, fuzzy
+#| msgid "Quantity must be greater than zero"
+msgid "Must be greater than zero"
+msgstr "Anzahl muss größer Null sein"
+
+#: part/api.py:704
+#, fuzzy
+#| msgid "Must be a valid number"
+msgid "Must be a valid quantity"
+msgstr "Muss eine gültige Nummer sein"
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4033,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr "Kategorie"
@@ -4020,7 +4042,7 @@ msgid "Part category"
msgstr "Teile-Kategorie"
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -4033,7 +4055,7 @@ msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr "Revision"
@@ -4140,7 +4162,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:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr "Test-Name"
@@ -4157,7 +4179,7 @@ msgstr "Test-Beschreibung"
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Benötigt"
@@ -4166,7 +4188,7 @@ msgstr "Benötigt"
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr "Erfordert Wert"
@@ -4174,7 +4196,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:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
@@ -4494,7 +4516,7 @@ msgstr "Teilparameter"
msgid "Create Part Category"
msgstr "Teil-Kategorie hinzufügen"
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr "Teil hinzufügen"
@@ -4538,7 +4560,7 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. v
msgid "Import Parts"
msgstr "Teile importieren"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4755,8 +4777,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:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr "Inaktiv"
@@ -4842,8 +4864,8 @@ msgstr "Zu Bauaufträgen zugeordnet"
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr "Im Bau"
@@ -5024,7 +5046,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:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5134,7 +5156,7 @@ msgstr "Teilparametervorlage bearbeiten"
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
@@ -6857,8 +6879,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:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr "Auswählen"
@@ -6944,34 +6966,34 @@ msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr "Vorlagenteil"
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr "Parameter löschen"
@@ -7009,37 +7031,37 @@ msgstr "Filter entfernen"
msgid "Create filter"
msgstr "Filter anlegen"
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr "Aktion verboten"
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr "Erstellvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr "Updatevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr "Löschvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7211,143 +7233,179 @@ msgstr "JA"
msgid "NO"
msgstr "NEIN"
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr "Teil-Kategorie hinzufügen"
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr "Teileigenschaften"
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr "Erstellungsoptionen für Teile"
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr "Start-Bestandsmenge"
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr "Teilbestand mit angegebener Menge anlegen"
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr "Kategorieparameter kopieren"
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr "Einstellungen für Teilkopien"
+#: templates/js/translated/part.js:33
+#, fuzzy
+#| msgid "Supplier List"
+msgid "Supplier Options"
+msgstr "Zulieferer-Liste"
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr "Teil-Kategorie hinzufügen"
+
#: templates/js/translated/part.js:131
+#, fuzzy
+#| msgid "Create initial stock"
+msgid "Create Initial Stock"
+msgstr "Ausgangsbestand erstellen"
+
+#: templates/js/translated/part.js:132
+#, fuzzy
+#| msgid "Create initial stock on part creation"
+msgid "Create an initial stock item for this part"
+msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen"
+
+#: templates/js/translated/part.js:139
+msgid "Initial Stock Quantity"
+msgstr "Start-Bestandsmenge"
+
+#: templates/js/translated/part.js:140
+#, fuzzy
+#| msgid "Specify stock quantity"
+msgid "Specify initial stock quantity for this part"
+msgstr "Bestandsanzahl angeben"
+
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
+msgstr "Zielstandort auswählen"
+
+#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr "Kategorieparameter kopieren"
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+#, fuzzy
+#| msgid "Add Supplier Part"
+msgid "Add Supplier Data"
+msgstr "Zuliefererteil hinzufügen"
+
+#: templates/js/translated/part.js:168
+#, fuzzy
+#| msgid "Create new supplier part"
+msgid "Create initial supplier data for this part"
+msgstr "Neues Zuliefererteil anlegen"
+
+#: templates/js/translated/part.js:224
msgid "Copy Image"
msgstr "Bild kopieren"
-#: templates/js/translated/part.js:132
+#: templates/js/translated/part.js:225
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: templates/js/translated/part.js:138
+#: templates/js/translated/part.js:232
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: templates/js/translated/part.js:139
+#: templates/js/translated/part.js:233
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: templates/js/translated/part.js:145
+#: templates/js/translated/part.js:240
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: templates/js/translated/part.js:146
+#: templates/js/translated/part.js:241
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: templates/js/translated/part.js:158
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr "Teil bearbeiten"
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr "Favoritenteil"
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
@@ -7423,10 +7481,6 @@ msgstr "Bestandsanzahl angeben"
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerbestand auswählen"
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr "Zielstandort auswählen"
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
@@ -8107,3 +8161,6 @@ msgstr "Berechtigungen Einträge zu ändern"
#: users/models.py:194
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+
+#~ msgid "Initialize part stock with specified quantity"
+#~ msgstr "Teilbestand mit angegebener Menge anlegen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 1855491d04..94928b15f3 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index db25f55da7..a90f4ec728 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -37,7 +37,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -138,8 +138,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -160,9 +160,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -595,8 +595,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -715,8 +716,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2088,7 +2089,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2223,7 +2224,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2283,11 +2284,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2295,11 +2296,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2325,7 +2326,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2335,7 +2336,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2354,20 +2355,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2707,8 +2709,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3462,7 +3464,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3494,7 +3496,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3502,7 +3504,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3516,7 +3518,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3819,6 +3821,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4012,7 +4030,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4021,7 +4039,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4034,7 +4052,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4141,7 +4159,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4158,7 +4176,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4167,7 +4185,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4175,7 +4193,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4495,7 +4513,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4539,7 +4557,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4756,8 +4774,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4843,8 +4861,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5025,7 +5043,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5135,7 +5153,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6858,8 +6876,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6945,34 +6963,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7010,37 +7028,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7212,143 +7230,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7424,10 +7466,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index bc60a29e68..d45c826c7e 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -36,7 +36,7 @@ msgstr "Ingrese la fecha"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Confirmar"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Nombre"
@@ -159,9 +159,9 @@ msgstr "Nombre"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Cantidad"
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr "Unicación"
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Parte"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr "Proveedor"
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,171 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+#, fuzzy
+#| msgid "Supplier"
+msgid "Supplier Options"
+msgstr "Proveedor"
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+#, fuzzy
+#| msgid "Supplier"
+msgid "Add Supplier Data"
+msgstr "Proveedor"
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7469,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 8a9b461695..8947f4ff8a 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -36,7 +36,7 @@ msgstr "Entrer la date"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Confirmer"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Nom"
@@ -159,9 +159,9 @@ msgstr "Nom"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Quantité"
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Pièce"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr "IPN"
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 37a2d0e9aa..3b535bf80f 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 7b7a3d9900..ee21dff89a 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index bcc5fea26f..0a8a3bc5fc 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -36,7 +36,7 @@ msgstr "Inserisci la data"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Conferma"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Quantità"
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 17bf3858ba..d5c46effc6 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -36,7 +36,7 @@ msgstr "日付を入力する"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "確認"
@@ -137,8 +137,8 @@ msgstr "無効な選択です"
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "お名前"
@@ -159,9 +159,9 @@ msgstr "お名前"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "パーツ"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr "メーカー・パーツの在庫"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr "%(order)s - %(desc)s の未処理のパーツを受け取る"
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr "%(order)s - %(desc)s の未処理のパーツを受け取
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "パーツ"
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,24 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+#, fuzzy
+#| msgid "Must be a valid number"
+msgid "Must be a valid quantity"
+msgstr "有効な数字でなければなりません"
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4031,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4040,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4053,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4160,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4177,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4186,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4194,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4514,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4558,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4775,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4862,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5044,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5154,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6877,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6964,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7029,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7231,173 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+#, fuzzy
+#| msgid "Supplier Parts"
+msgid "Supplier Options"
+msgstr "サプライヤー・パーツ"
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+#, fuzzy
+#| msgid "Supplier Parts"
+msgid "Add Supplier Data"
+msgstr "サプライヤー・パーツ"
+
+#: templates/js/translated/part.js:168
+#, fuzzy
+#| msgid "Create new supplier part"
+msgid "Create initial supplier data for this part"
+msgstr "新しいサプライヤー・パーツを作成"
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7473,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 298e173bd3..4715b00783 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 2ad0a92e38..a6fc7f9f62 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
@@ -36,7 +36,7 @@ msgstr "Voer datum in"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Bevestigen"
@@ -137,8 +137,8 @@ msgstr "Ongeldige keuze"
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Naam"
@@ -159,9 +159,9 @@ msgstr "Naam"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Aantal"
@@ -594,8 +594,9 @@ msgstr "Markeer build als voltooid"
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr "Locatie"
@@ -714,8 +715,8 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Onderdeel"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,24 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+#, fuzzy
+#| msgid "Must be a valid number"
+msgid "Must be a valid quantity"
+msgstr "Moet een geldig nummer zijn"
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4031,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4040,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4053,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4160,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4177,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4186,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4194,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4514,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4558,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4775,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4862,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5044,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5154,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6877,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6964,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7029,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7231,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7467,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 441d9148b7..b394e464e8 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
@@ -36,7 +36,7 @@ msgstr "Oppgi dato"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Bekreft"
@@ -137,8 +137,8 @@ msgstr "Ugyldig valg"
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Navn"
@@ -159,9 +159,9 @@ msgstr "Navn"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,24 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+#, fuzzy
+#| msgid "Must be a valid number"
+msgid "Must be a valid quantity"
+msgstr "Nummer må være gyldig"
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4031,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4040,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4053,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4160,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4177,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4186,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4194,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4514,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4558,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4775,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4862,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5044,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5154,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6877,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6964,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7029,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7231,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7467,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index e2a7711f73..aebc15a8e7 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -36,7 +36,7 @@ msgstr "Wprowadź dane"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Potwierdź"
@@ -137,8 +137,8 @@ msgstr "Błędny wybór"
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Nazwa"
@@ -159,9 +159,9 @@ msgstr "Nazwa"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Ilość"
@@ -594,8 +594,9 @@ msgstr "Oznacz budowę jako ukończoną"
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr "Lokalizacja"
@@ -714,8 +715,8 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Część"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr "Cena"
@@ -2222,7 +2223,7 @@ msgstr "Punkt kontaktowy"
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr "Łącze"
@@ -2282,11 +2283,11 @@ msgstr "Wybierz część"
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr "Wybierz producenta"
@@ -2294,11 +2295,11 @@ msgstr "Wybierz producenta"
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr "MPN"
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr "Numer producenta"
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr "Jednostki"
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr "Wybierz dostawcę"
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr "SKU"
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr "Stan"
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr "Cena jednostkowa"
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Części"
@@ -3515,7 +3517,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:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,26 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+#, fuzzy
+#| msgid "Quantity must be greater than zero"
+msgid "Must be greater than zero"
+msgstr "Ilość musi być większa niż zero"
+
+#: part/api.py:704
+#, fuzzy
+#| msgid "Must be a valid number"
+msgid "Must be a valid quantity"
+msgstr "Numer musi być prawidłowy"
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4033,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr "Kategoria"
@@ -4020,7 +4042,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr "IPN"
@@ -4033,7 +4055,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr "Wersja"
@@ -4140,7 +4162,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr "Nazwa testu"
@@ -4157,7 +4179,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Wymagane"
@@ -4166,7 +4188,7 @@ msgstr "Wymagane"
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4196,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4516,7 @@ msgstr "Parametry części"
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4560,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4755,8 +4777,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:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr "Nieaktywny"
@@ -4842,8 +4864,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5046,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5156,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
@@ -6857,8 +6879,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6966,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7031,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7233,175 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:131
-msgid "Copy Image"
+#: templates/js/translated/part.js:33
+#, fuzzy
+#| msgid "Supplier List"
+msgid "Supplier Options"
+msgstr "Lista dostawców"
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
msgstr ""
+#: templates/js/translated/part.js:131
+#, fuzzy
+#| msgid "Create new Stock Location"
+msgid "Create Initial Stock"
+msgstr "Utwórz nową lokalizację magazynową"
+
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
+msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
-msgstr "Kopiuj BOM"
-
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+#, fuzzy
+#| msgid "Supplier Parts"
+msgid "Add Supplier Data"
+msgstr "Komponenty dostawcy"
+
+#: templates/js/translated/part.js:168
+#, fuzzy
+#| msgid "Create new supplier part"
+msgid "Create initial supplier data for this part"
+msgstr "Utwórz nowego dostawcę części"
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr "Kopiuj BOM"
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7477,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 929e9cbd48..c7885000e4 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -36,7 +36,7 @@ msgstr "Введите дату"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Подтвердить"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Название"
@@ -159,9 +159,9 @@ msgstr "Название"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Количество"
@@ -594,8 +594,9 @@ msgstr "Пометить сборку как завершенную"
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr "Расположение"
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Детали"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index c4ea26c0ff..f275bee4f9 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index d739f9010b..d66ae7a711 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 7220c0f007..4211e11543 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -36,7 +36,7 @@ msgstr "Tarih giriniz"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "Onay"
@@ -137,8 +137,8 @@ msgstr "Geçersiz seçim"
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "Adı"
@@ -159,9 +159,9 @@ msgstr "Adı"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr "Miktar"
@@ -594,8 +594,9 @@ msgstr "Yapım işini tamamlandı olarak işaretle"
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr "Konum"
@@ -714,8 +715,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:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr "Parça"
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr "Fiyat"
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr "Bağlantı"
@@ -2282,11 +2283,11 @@ msgstr "Parça seçin"
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr "Üretici"
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr "Üretici seçin"
@@ -2294,11 +2295,11 @@ msgstr "Üretici seçin"
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
@@ -2324,7 +2325,7 @@ msgstr "Parametre adı"
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr "Değer"
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr "Parametre değeri"
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr "Tedarikçi seçin"
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr "SKU"
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr "Stok"
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Parçalar"
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,26 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+#, fuzzy
+#| msgid "Allocation quantity must be greater than zero"
+msgid "Must be greater than zero"
+msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
+
+#: part/api.py:704
+#, fuzzy
+#| msgid "Must be a valid number"
+msgid "Must be a valid quantity"
+msgstr "Geçerli bir numara olmalı"
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4033,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4042,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr "DPN"
@@ -4033,7 +4055,7 @@ msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr "Revizyon"
@@ -4140,7 +4162,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:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr "Test Adı"
@@ -4157,7 +4179,7 @@ msgstr "Test Açıklaması"
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Gerekli"
@@ -4166,7 +4188,7 @@ msgstr "Gerekli"
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4196,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4516,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4560,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4777,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr "Pasif"
@@ -4842,8 +4864,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5046,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:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr "Stok Yok"
@@ -5134,7 +5156,7 @@ msgstr "Parça Parametre Şablonu Düzenle"
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6879,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6966,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr "Şablon Parça"
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7031,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7233,177 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:131
-msgid "Copy Image"
+#: templates/js/translated/part.js:33
+#, fuzzy
+#| msgid "Supplier Parts"
+msgid "Supplier Options"
+msgstr "Tedarikçi Parçaları"
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
msgstr ""
+#: templates/js/translated/part.js:131
+#, fuzzy
+#| msgid "Create new Stock Location"
+msgid "Create Initial Stock"
+msgstr "Yeni Stok konumu oluştur"
+
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
-msgstr ""
+#, fuzzy
+#| msgid "Include stock items for variant parts"
+msgid "Create an initial stock item for this part"
+msgstr "Çeşit parçaların stok kalemlerini dahil et"
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+#, fuzzy
+#| msgid "Supplier Part"
+msgid "Add Supplier Data"
+msgstr "Tedarikçi Parçası"
+
+#: templates/js/translated/part.js:168
+#, fuzzy
+#| msgid "Create new supplier part"
+msgid "Create initial supplier data for this part"
+msgstr "Yeni tedarikçi parçası oluştur"
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7479,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index cb7d13c37e..7e74dde2aa 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr ""
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr ""
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 7b270da366..91baed2292 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-12 23:32+0000\n"
+"POT-Creation-Date: 2021-08-14 02:13+0000\n"
"PO-Revision-Date: 2021-08-10 14:33\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -36,7 +36,7 @@ msgstr "输入日期"
#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:527
msgid "Confirm"
msgstr "确认"
@@ -137,8 +137,8 @@ msgstr ""
#: label/models.py:112 part/models.py:656 part/models.py:2196
#: part/templates/part/part_base.html:234 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:338
-#: templates/js/translated/part.js:471 templates/js/translated/part.js:963
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:438
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:1063
#: templates/js/translated/stock.js:1345
msgid "Name"
msgstr "名称"
@@ -159,9 +159,9 @@ msgstr "名称"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:308
#: templates/js/translated/company.js:506
#: templates/js/translated/company.js:788 templates/js/translated/order.js:267
-#: templates/js/translated/order.js:369 templates/js/translated/part.js:397
-#: templates/js/translated/part.js:581 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043
+#: templates/js/translated/order.js:369 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:681 templates/js/translated/part.js:858
+#: templates/js/translated/part.js:1075 templates/js/translated/part.js:1143
#: templates/js/translated/stock.js:929 templates/js/translated/stock.js:1357
#: templates/js/translated/stock.js:1402
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:482 templates/js/translated/part.js:1149
-#: templates/js/translated/part.js:1272 templates/js/translated/part.js:1328
+#: templates/js/translated/order.js:482 templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1372 templates/js/translated/part.js:1428
#: templates/js/translated/stock.js:1537 templates/js/translated/stock.js:1735
msgid "Quantity"
msgstr ""
@@ -594,8 +594,9 @@ msgstr ""
#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:363
#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256
#: templates/js/translated/build.js:620 templates/js/translated/order.js:467
-#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260
-#: templates/js/translated/stock.js:1015 templates/js/translated/stock.js:1429
+#: templates/js/translated/part.js:146 templates/js/translated/stock.js:134
+#: templates/js/translated/stock.js:260 templates/js/translated/stock.js:1015
+#: templates/js/translated/stock.js:1429
msgid "Location"
msgstr ""
@@ -714,8 +715,8 @@ msgstr ""
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:447
-#: templates/js/translated/company.js:697 templates/js/translated/part.js:562
-#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132
+#: templates/js/translated/company.js:697 templates/js/translated/part.js:662
+#: templates/js/translated/part.js:825 templates/js/translated/stock.js:132
#: templates/js/translated/stock.js:898 templates/js/translated/stock.js:1723
msgid "Part"
msgstr ""
@@ -2087,7 +2088,7 @@ msgid "Price break quantity"
msgstr ""
#: common/models.py:1009 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1154
+#: templates/js/translated/part.js:1254
msgid "Price"
msgstr ""
@@ -2222,7 +2223,7 @@ msgstr ""
#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:777 templates/js/translated/part.js:819
+#: templates/js/translated/company.js:777 templates/js/translated/part.js:919
msgid "Link"
msgstr ""
@@ -2282,11 +2283,11 @@ msgstr ""
#: part/bom.py:241 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:296
#: templates/js/translated/company.js:472
-#: templates/js/translated/company.js:748
+#: templates/js/translated/company.js:748 templates/js/translated/part.js:194
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335
+#: company/models.py:335 templates/js/translated/part.js:195
msgid "Select manufacturer"
msgstr ""
@@ -2294,11 +2295,11 @@ msgstr ""
#: company/templates/company/supplier_part.html:106
#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171
#: part/bom.py:242 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:766
+#: templates/js/translated/company.js:766 templates/js/translated/part.js:205
msgid "MPN"
msgstr ""
-#: company/models.py:342
+#: company/models.py:342 templates/js/translated/part.js:206
msgid "Manufacturer Part Number"
msgstr ""
@@ -2324,7 +2325,7 @@ msgstr ""
#: company/models.py:421
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:598 templates/js/translated/part.js:480
+#: templates/js/translated/company.js:598 templates/js/translated/part.js:580
#: templates/js/translated/stock.js:507
msgid "Value"
msgstr ""
@@ -2334,7 +2335,7 @@ msgid "Parameter value"
msgstr ""
#: company/models.py:428 part/models.py:797 part/models.py:2204
-#: templates/js/translated/company.js:604 templates/js/translated/part.js:486
+#: templates/js/translated/company.js:604 templates/js/translated/part.js:586
msgid "Units"
msgstr ""
@@ -2353,20 +2354,21 @@ msgstr ""
#: part/bom.py:286 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:300
#: templates/js/translated/company.js:722 templates/js/translated/order.js:254
+#: templates/js/translated/part.js:175
msgid "Supplier"
msgstr ""
-#: company/models.py:545
+#: company/models.py:545 templates/js/translated/part.js:176
msgid "Select supplier"
msgstr ""
#: company/models.py:550 company/templates/company/supplier_part.html:92
#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176
-#: part/bom.py:287
+#: part/bom.py:287 templates/js/translated/part.js:186
msgid "SKU"
msgstr ""
-#: company/models.py:551
+#: company/models.py:551 templates/js/translated/part.js:187
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2706,8 +2708,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:95
#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:401 templates/js/translated/part.js:626
-#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133
+#: templates/js/translated/part.js:501 templates/js/translated/part.js:726
+#: templates/js/translated/part.js:886 templates/js/translated/stock.js:133
#: templates/js/translated/stock.js:938 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -3461,7 +3463,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1129 templates/js/translated/part.js:1319
+#: templates/js/translated/part.js:1229 templates/js/translated/part.js:1419
msgid "Unit Price"
msgstr ""
@@ -3493,7 +3495,7 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: order/templates/order/receive_parts.html:14 part/api.py:54
#: part/models.py:296 part/templates/part/cat_link.html:7
#: part/templates/part/category.html:108 part/templates/part/category.html:122
#: part/templates/part/category_navbar.html:21
@@ -3501,7 +3503,7 @@ msgstr ""
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:987 templates/navbar.html:23
+#: templates/js/translated/part.js:1087 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3515,7 +3517,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:902
msgid "On Order"
msgstr ""
@@ -3818,6 +3820,22 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:700
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:704
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:719
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+msgid "This field is required"
+msgstr ""
+
#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:283
msgid "Default Location"
@@ -4011,7 +4029,7 @@ msgstr ""
#: part/models.py:693 part/models.py:2279
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:773
+#: templates/js/translated/part.js:873
msgid "Category"
msgstr ""
@@ -4020,7 +4038,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:699 part/templates/part/part_base.html:228
-#: templates/js/translated/part.js:389 templates/js/translated/part.js:617
+#: templates/js/translated/part.js:489 templates/js/translated/part.js:717
msgid "IPN"
msgstr ""
@@ -4033,7 +4051,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:707 part/templates/part/part_base.html:245
-#: report/models.py:200 templates/js/translated/part.js:393
+#: report/models.py:200 templates/js/translated/part.js:493
msgid "Revision"
msgstr ""
@@ -4140,7 +4158,7 @@ msgstr ""
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2117 templates/js/translated/part.js:1038
+#: part/models.py:2117 templates/js/translated/part.js:1138
#: templates/js/translated/stock.js:487
msgid "Test Name"
msgstr ""
@@ -4157,7 +4175,7 @@ msgstr ""
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2129 templates/js/translated/part.js:1047
+#: part/models.py:2129 templates/js/translated/part.js:1147
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
@@ -4166,7 +4184,7 @@ msgstr ""
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2135 templates/js/translated/part.js:1055
+#: part/models.py:2135 templates/js/translated/part.js:1155
msgid "Requires Value"
msgstr ""
@@ -4174,7 +4192,7 @@ msgstr ""
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2141 templates/js/translated/part.js:1062
+#: part/models.py:2141 templates/js/translated/part.js:1162
msgid "Requires Attachment"
msgstr ""
@@ -4494,7 +4512,7 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:279
+#: part/templates/part/category.html:280
msgid "Create Part"
msgstr ""
@@ -4538,7 +4556,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:324
msgid "Duplicate Part"
msgstr ""
@@ -4755,8 +4773,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:463
-#: templates/js/translated/company.js:713 templates/js/translated/part.js:304
-#: templates/js/translated/part.js:381
+#: templates/js/translated/company.js:713 templates/js/translated/part.js:404
+#: templates/js/translated/part.js:481
msgid "Inactive"
msgstr ""
@@ -4842,8 +4860,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633
-#: templates/js/translated/part.js:806
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:733
+#: templates/js/translated/part.js:906
msgid "Building"
msgstr ""
@@ -5024,7 +5042,7 @@ msgid "Set category for the following parts"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259
-#: templates/js/translated/part.js:623 templates/js/translated/part.js:810
+#: templates/js/translated/part.js:723 templates/js/translated/part.js:910
msgid "No Stock"
msgstr ""
@@ -5134,7 +5152,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1494 templates/js/translated/part.js:179
+#: part/views.py:1494 templates/js/translated/part.js:275
msgid "Edit Part Category"
msgstr ""
@@ -6857,8 +6875,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:711
-#: templates/js/translated/part.js:956 templates/js/translated/stock.js:886
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:811
+#: templates/js/translated/part.js:1056 templates/js/translated/stock.js:886
#: templates/js/translated/stock.js:1339
msgid "Select"
msgstr ""
@@ -6944,34 +6962,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:455
-#: templates/js/translated/company.js:705 templates/js/translated/part.js:288
-#: templates/js/translated/part.js:373
+#: templates/js/translated/company.js:705 templates/js/translated/part.js:388
+#: templates/js/translated/part.js:473
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:459
-#: templates/js/translated/company.js:709 templates/js/translated/part.js:292
-#: templates/js/translated/part.js:377
+#: templates/js/translated/company.js:709 templates/js/translated/part.js:392
+#: templates/js/translated/part.js:477
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:583 templates/js/translated/part.js:462
+#: templates/js/translated/company.js:583 templates/js/translated/part.js:562
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:619 templates/js/translated/part.js:503
+#: templates/js/translated/company.js:619 templates/js/translated/part.js:603
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:620 templates/js/translated/part.js:504
+#: templates/js/translated/company.js:620 templates/js/translated/part.js:604
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:639 templates/js/translated/part.js:521
+#: templates/js/translated/company.js:639 templates/js/translated/part.js:621
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:533
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:633
msgid "Delete Parameter"
msgstr ""
@@ -7009,37 +7027,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
-#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
+#: templates/js/translated/forms.js:293 templates/js/translated/forms.js:306
+#: templates/js/translated/forms.js:318 templates/js/translated/forms.js:330
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:290
+#: templates/js/translated/forms.js:294
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:303
+#: templates/js/translated/forms.js:307
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:315
+#: templates/js/translated/forms.js:319
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:327
+#: templates/js/translated/forms.js:331
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:865 templates/modals.html:21
+#: templates/js/translated/forms.js:848 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1258
+#: templates/js/translated/forms.js:1311
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1423
+#: templates/js/translated/forms.js:1523
msgid "Clear input"
msgstr ""
@@ -7211,143 +7229,167 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:22
-msgid "Add Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:21
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:96
+#: templates/js/translated/part.js:25
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:102
-msgid "Initial Stock Quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:103
-msgid "Initialize part stock with specified quantity"
-msgstr ""
-
-#: templates/js/translated/part.js:109
-msgid "Copy Category Parameters"
-msgstr ""
-
-#: templates/js/translated/part.js:110
-msgid "Copy parameter templates from selected part category"
-msgstr ""
-
-#: templates/js/translated/part.js:120
+#: templates/js/translated/part.js:29
msgid "Part Duplication Options"
msgstr ""
+#: templates/js/translated/part.js:33
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:47
+msgid "Add Part Category"
+msgstr ""
+
#: templates/js/translated/part.js:131
-msgid "Copy Image"
+msgid "Create Initial Stock"
msgstr ""
#: templates/js/translated/part.js:132
-msgid "Copy image from original part"
-msgstr ""
-
-#: templates/js/translated/part.js:138
-msgid "Copy BOM"
+msgid "Create an initial stock item for this part"
msgstr ""
#: templates/js/translated/part.js:139
-msgid "Copy bill of materials from original part"
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:145
-msgid "Copy Parameters"
+#: templates/js/translated/part.js:140
+msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:146
-msgid "Copy parameter data from original part"
+#: templates/js/translated/part.js:147 templates/js/translated/stock.js:261
+msgid "Select destination stock location"
msgstr ""
#: templates/js/translated/part.js:158
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:159
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:168
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:224
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:225
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:232
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:233
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:240
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:241
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:254
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:295
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:280 templates/js/translated/part.js:365
+#: templates/js/translated/part.js:380 templates/js/translated/part.js:465
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:284 templates/js/translated/part.js:369
+#: templates/js/translated/part.js:384 templates/js/translated/part.js:469
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:296
+#: templates/js/translated/part.js:396
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:300
+#: templates/js/translated/part.js:400
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:414
+#: templates/js/translated/part.js:514
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:601 templates/js/translated/part.js:840
+#: templates/js/translated/part.js:701 templates/js/translated/part.js:940
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:779
+#: templates/js/translated/part.js:879
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:797
+#: templates/js/translated/part.js:897
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1363
+#: templates/js/translated/part.js:1081 templates/js/translated/stock.js:1363
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1024
+#: templates/js/translated/part.js:1124
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:445
+#: templates/js/translated/part.js:1175 templates/js/translated/stock.js:445
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:446
+#: templates/js/translated/part.js:1176 templates/js/translated/stock.js:446
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1082
+#: templates/js/translated/part.js:1182
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1107
+#: templates/js/translated/part.js:1207
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1161
+#: templates/js/translated/part.js:1261
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1162
+#: templates/js/translated/part.js:1262
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1263
+#: templates/js/translated/part.js:1363
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1382
msgid "Single Price Difference"
msgstr ""
@@ -7423,10 +7465,6 @@ msgstr ""
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:261
-msgid "Select destination stock location"
-msgstr ""
-
#: templates/js/translated/stock.js:270
msgid "Stock transaction notes"
msgstr ""