From 7b02f9c5237a239a50254ae91b80a3f0ece260ec Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 4 Aug 2021 22:16:19 +0000
Subject: [PATCH] updated translation base
---
InvenTree/locale/de/LC_MESSAGES/django.po | 897 ++++++++++++----------
InvenTree/locale/el/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/en/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/es/LC_MESSAGES/django.po | 823 ++++++++++----------
InvenTree/locale/fr/LC_MESSAGES/django.po | 825 ++++++++++----------
InvenTree/locale/he/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/id/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/it/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/ja/LC_MESSAGES/django.po | 821 ++++++++++----------
InvenTree/locale/ko/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/nl/LC_MESSAGES/django.po | 821 ++++++++++----------
InvenTree/locale/no/LC_MESSAGES/django.po | 821 ++++++++++----------
InvenTree/locale/pl/LC_MESSAGES/django.po | 850 ++++++++++----------
InvenTree/locale/ru/LC_MESSAGES/django.po | 823 ++++++++++----------
InvenTree/locale/sv/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/th/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/tr/LC_MESSAGES/django.po | 855 +++++++++++----------
InvenTree/locale/vi/LC_MESSAGES/django.po | 817 ++++++++++----------
InvenTree/locale/zh/LC_MESSAGES/django.po | 821 ++++++++++----------
19 files changed, 7759 insertions(+), 7951 deletions(-)
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 7910a7e9f6..34bb84f5bf 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Bestätigen"
@@ -118,8 +118,8 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr "Ungültige Auswahl"
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Name"
@@ -148,7 +148,7 @@ msgstr "Name"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Name"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -522,7 +522,7 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Anzahl"
@@ -671,7 +671,7 @@ msgstr "Bauauftragsreferenz"
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Teil"
@@ -780,7 +780,7 @@ msgstr "Losnummer"
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr "Erstelldatum"
@@ -808,8 +808,9 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat"
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
@@ -825,7 +826,7 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
@@ -838,7 +839,7 @@ msgstr "Link zu einer externen URL"
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr "Anmerkungen bearbeiten"
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
@@ -1324,7 +1325,7 @@ msgstr "Anhang hinzufügen"
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
@@ -1332,7 +1333,7 @@ msgstr "Anhang bearbeiten"
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
@@ -1340,7 +1341,7 @@ msgstr "Löschvorgang bestätigen"
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr "Anhang löschen"
@@ -1557,7 +1558,7 @@ msgstr "{name.title()} Datei"
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
@@ -1693,7 +1694,7 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr "Baugruppe"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr "Komponente"
@@ -1722,7 +1723,7 @@ msgstr "Komponente"
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr "Kaufbar"
@@ -1730,7 +1731,7 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr "Verkäuflich"
@@ -1739,7 +1740,7 @@ msgstr "Verkäuflich"
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr "Nachverfolgbar"
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr "Virtuell"
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr "Import in Ansichten anzeigen"
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr "Preis in Formularen anzeigen"
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr "Teilpreis in einigen Formularen anzeigen"
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr "Verwandte Teile anzeigen"
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr "Verwandte Teile eines Teils anzeigen"
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr "Ausgangsbestand erstellen"
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen"
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr "Interne Preise"
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr "Interne Preise für Teile aktivieren"
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr "Interner Preis als Stückliste-Preis"
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden"
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr "Tage"
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr "Gruppieren nach Teil"
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr "Markierte Teile anzeigen"
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr "Zeige markierte Teile auf der Startseite"
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr "Neueste Lagerbestand Änderungen anzeigen"
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Lagerbestand auf der Startseite"
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr "Zeige Abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr "Ausstehende POs auf der Startseite anzeigen"
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr "Überfällige POs auf der Startseite anzeigen"
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr "Ausstehende SOs auf der Startseite anzeigen"
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr "Überfällige SOs auf der Startseite anzeigen"
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr "Preis"
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr "Standard"
@@ -2109,16 +2110,16 @@ msgstr "Benutzereinstellungen ändern"
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr "Anlaufstelle"
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr "Link"
@@ -2215,7 +2216,7 @@ msgstr "Link"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr "Bild"
@@ -2309,7 +2310,7 @@ msgstr "Parametername"
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr "Wert"
@@ -2318,8 +2319,8 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr "Einheiten"
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
@@ -2387,7 +2388,7 @@ msgstr "Verpackungen"
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr "Vielfache"
@@ -2466,13 +2467,12 @@ msgstr "Zuliefererteile"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
@@ -2578,13 +2578,13 @@ msgstr "Firmenbemerkungen"
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr "Zuliefererteil entfernen?"
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr "Parameter löschen"
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
@@ -2688,8 +2688,8 @@ msgstr "Herstellerteil-Bestand"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr "Lagerbestand"
@@ -2767,7 +2767,7 @@ msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2775,11 +2775,11 @@ msgstr "Preisstaffel hinzufügen"
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
@@ -2829,20 +2829,20 @@ msgstr "Firmen"
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -3214,14 +3214,13 @@ msgstr "Bestellung bearbeiten"
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr "Neuer Lagerort"
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr "Neuen Lagerort anlegen"
@@ -3444,7 +3443,7 @@ msgstr "Summe"
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr "Stück-Preis"
@@ -3476,15 +3475,15 @@ 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:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Teile"
@@ -3498,7 +3497,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:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr "Bestellt"
@@ -3801,7 +3800,7 @@ 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/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr "Standard-Lagerort"
@@ -3866,7 +3865,7 @@ msgstr "Zulieferer einschließen"
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -3898,434 +3897,398 @@ msgstr "verknüpftes Teil"
msgid "Select part category"
msgstr "Teil-Kategorie wählen"
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr "Stückliste für dieses Teil kopieren"
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr "Stückliste kopieren"
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr "Alle Parameter-Daten für dieses Teil kopieren"
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr "Parameter kopieren"
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr "Erstellen des Teils bestätigen"
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr "Kategorie Parameter-Vorlage einschließen"
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr "Über-Kategorie Parameter-Vorlage einschließen"
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr "Anfangsbestand"
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr "Bestand für dieses Teil erstellen"
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr "Revision"
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr "Minimaler Lagerbestand"
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr "Aktiv"
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil"
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?"
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr "Wert"
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt"
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
@@ -4376,7 +4339,7 @@ msgstr "Stückliste bearbeiten"
msgid "Validate Bill of Materials"
msgstr "Stückliste kontrollieren"
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr "Stückliste exportieren"
@@ -4509,9 +4472,11 @@ msgstr "Teilparameter"
msgid "Create Part Category"
msgstr "Neue Teil-Kategorie anlegen"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr "Neuen Lagerort erstellen"
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Create New Part"
+msgid "Create Part"
+msgstr "Neues Teil anlegen"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,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 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4676,41 +4641,41 @@ msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr "Testergebnis-Vorlage bearbeiten"
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr "Testergebnis-Vorlage löschen"
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr "Teilenotizen bearbeiten"
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, fuzzy, python-format
#| msgid "Unit Price - %(currency)s"
msgid "Purchase Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, fuzzy, python-format
#| msgid "Single Price Difference - %(currency)s"
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Einzelpreisdifferenz - %(currency)s"
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, fuzzy, python-format
#| msgid "Unit Price - %(currency)s"
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Stückpreis - %(currency)s"
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
@@ -4773,8 +4738,8 @@ msgid "Part is virtual (not a physical part)"
msgstr "Teil ist virtuell (kein physisches Teil)"
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr "Inaktiv"
@@ -4860,8 +4825,8 @@ msgstr "Zu Bauaufträgen zugeordnet"
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr "Im Bau"
@@ -4879,13 +4844,13 @@ msgstr "Berechnen"
msgid "No matching images found"
msgstr "Keine passende Aktion gefunden"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5022,7 +4987,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr "Interne Kosten"
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5043,7 +5008,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5064,148 +5029,128 @@ msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'."
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr "verknüpftes Teil entfernen"
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:247
-msgid "Create Variant"
-msgstr "Variante anlegen"
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr "Teil kopiert"
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr "Übereinstimmung gefunden - Teil trotzdem anlegen"
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr "Neues Teil anlegen"
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr "Neues Teil angelegt"
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr "Referenzen zuteilen"
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr "Kein(e)"
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr "Stückliste duplizieren"
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr "Bestätigen, dass Stückliste korrekt ist"
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr "Teile zuordnen"
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6112,6 +6057,10 @@ msgstr "BestandsObjekte deinstalliert"
msgid "Edit Stock Item"
msgstr "BestandsObjekt bearbeiten"
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr "Neuen Lagerort erstellen"
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
@@ -6875,8 +6824,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:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr "Auswählen"
@@ -6889,10 +6838,6 @@ msgstr "Bauauftrag ist überfällig"
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr "Zuständig"
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr "Keine Information"
@@ -6958,34 +6903,34 @@ msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr "Vorlagenteil"
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr "Parameter löschen"
@@ -7025,37 +6970,37 @@ msgstr "Filter entfernen"
msgid "Create filter"
msgstr "Filter anlegen"
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr "Aktion verboten"
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr "Erstellvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr "Updatevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr "Löschvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7223,101 +7168,163 @@ msgstr "JA"
msgid "NO"
msgstr "NEIN"
-#: templates/js/translated/part.js:20
+#: templates/js/translated/part.js:43
+#, fuzzy
+#| msgid "Part Categories"
+msgid "Part Attributes"
+msgstr "Teil-Kategorien"
+
+#: templates/js/translated/part.js:86
+#, fuzzy
+#| msgid "Part Options"
+msgid "Part Creation Options"
+msgstr "Teil-Optionen"
+
+#: templates/js/translated/part.js:92
+#, fuzzy
+#| msgid "Stock Quantity"
+msgid "Initial Stock Quantity"
+msgstr "Bestand"
+
+#: templates/js/translated/part.js:93
+#, fuzzy
+#| msgid "Unit price at specified quantity"
+msgid "Initialize part stock with specified quantity"
+msgstr "Stückpreis für die angegebene Anzahl"
+
+#: templates/js/translated/part.js:99
+#, fuzzy
+#| msgid "Copy Category Parameter Templates"
+msgid "Copy Category Parameters"
+msgstr "Kategorie-Parametervorlage kopieren"
+
+#: templates/js/translated/part.js:100
+#, fuzzy
+#| msgid "Add parameter template to same level categories"
+msgid "Copy parameter templates from selected part category"
+msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
+
+#: templates/js/translated/part.js:110
+#, fuzzy
+#| msgid "Part Options"
+msgid "Part Duplication Options"
+msgstr "Teil-Optionen"
+
+#: templates/js/translated/part.js:121
+#, fuzzy
+#| msgid "Image"
+msgid "Copy Image"
+msgstr "Bild"
+
+#: templates/js/translated/part.js:122
+#, fuzzy
+#| msgid "Copy BOM from parent part"
+msgid "Copy image from original part"
+msgstr "Stückliste von übergeordnetem Teil kopieren"
+
+#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr "Stückliste kopieren"
+
+#: templates/js/translated/part.js:129
+#, fuzzy
+#| msgid "The Bill of Materials contains trackable parts"
+msgid "Copy bill of materials from original part"
+msgstr "Die Stückliste enthält verfolgbare Teile"
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr "Parameter kopieren"
+
+#: templates/js/translated/part.js:136
+#, fuzzy
+#| msgid "Copy parameter data by default when duplicating a part"
+msgid "Copy parameter data from original part"
+msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
+
+#: templates/js/translated/part.js:148
#, fuzzy
#| msgid "Select part category"
msgid "Parent part category"
msgstr "Teil-Kategorie wählen"
-#: templates/js/translated/part.js:56
-msgid "New Category"
-msgstr "Neue Kategorie"
-
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
-msgstr "Neue Teil-Kategorie anlegen"
-
-#: templates/js/translated/part.js:65
-msgid "New Parent"
-msgstr ""
-
-#: templates/js/translated/part.js:128
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr "Teil bearbeiten"
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr "Favoritenteil"
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
@@ -8074,6 +8081,48 @@ msgstr "Berechtigungen Einträge zu ändern"
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+#~ msgid "Duplicate all BOM data for this part"
+#~ msgstr "Stückliste für dieses Teil kopieren"
+
+#~ msgid "Duplicate all parameter data for this part"
+#~ msgstr "Alle Parameter-Daten für dieses Teil kopieren"
+
+#~ msgid "Confirm part creation"
+#~ msgstr "Erstellen des Teils bestätigen"
+
+#~ msgid "Include category parameter templates"
+#~ msgstr "Kategorie Parameter-Vorlage einschließen"
+
+#~ msgid "Include parent categories parameter templates"
+#~ msgstr "Über-Kategorie Parameter-Vorlage einschließen"
+
+#~ msgid "Initial stock amount"
+#~ msgstr "Anfangsbestand"
+
+#~ msgid "Create stock for this part"
+#~ msgstr "Bestand für dieses Teil erstellen"
+
+#~ msgid "Create Variant"
+#~ msgstr "Variante anlegen"
+
+#~ msgid "Copied part"
+#~ msgstr "Teil kopiert"
+
+#~ msgid "Possible matches exist - confirm creation of new part"
+#~ msgstr "Übereinstimmung gefunden - Teil trotzdem anlegen"
+
+#~ msgid "Created new part"
+#~ msgstr "Neues Teil angelegt"
+
+#~ msgid "Resposible"
+#~ msgstr "Zuständig"
+
+#~ msgid "New Category"
+#~ msgstr "Neue Kategorie"
+
+#~ msgid "Create New Part Category"
+#~ msgstr "Neue Teil-Kategorie anlegen"
+
#~ msgid "Edit BOM item"
#~ msgstr "Stücklisten-Position bearbeiten"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 1bd1455522..2b110f286d 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 7f28cc170e..aba74a3e9c 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -119,8 +119,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -135,11 +135,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -149,7 +149,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -160,9 +160,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -176,7 +176,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -523,7 +523,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -532,10 +532,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -547,8 +547,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -672,7 +672,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -701,10 +701,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -715,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -781,7 +781,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -809,8 +809,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -826,7 +827,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -839,7 +840,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1314,7 +1315,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1323,7 +1324,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1331,7 +1332,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1339,7 +1340,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1556,7 +1557,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1692,7 +1693,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1702,7 +1703,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1712,7 +1713,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1721,7 +1722,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1729,7 +1730,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1738,7 +1739,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1748,7 +1749,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1758,328 +1759,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2108,16 +2109,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2203,10 +2204,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2214,7 +2215,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2308,7 +2309,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2317,8 +2318,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2363,16 +2364,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2386,7 +2387,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2465,13 +2466,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2577,13 +2577,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2661,7 +2661,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2687,8 +2687,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2766,7 +2766,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2774,11 +2774,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2828,20 +2828,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3213,14 +3213,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3443,7 +3442,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3475,15 +3474,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3497,7 +3496,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3800,7 +3799,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3865,7 +3864,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3897,434 +3896,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4375,7 +4338,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4506,8 +4469,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4550,7 +4513,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4673,38 +4636,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4767,8 +4730,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4854,8 +4817,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4871,13 +4834,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5014,7 +4977,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5035,7 +4998,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5056,148 +5019,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6088,6 +6031,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6851,8 +6798,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6865,10 +6812,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6934,34 +6877,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6999,37 +6942,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7197,99 +7140,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 46fed06f0c..949d280c02 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Confirmar"
@@ -118,8 +118,8 @@ msgstr "Comentario"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Nombre"
@@ -148,7 +148,7 @@ msgstr "Nombre"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Nombre"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Cantidad"
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Parte"
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr "Responsable"
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1324,7 +1325,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1332,7 +1333,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1340,7 +1341,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1557,7 +1558,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1693,7 +1694,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1722,7 +1723,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1730,7 +1731,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1739,7 +1740,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr "días"
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2109,16 +2110,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2215,7 +2216,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2309,7 +2310,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,8 +2319,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Nota"
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2387,7 +2388,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2466,13 +2467,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2578,13 +2578,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2829,20 +2829,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3214,14 +3214,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3476,15 +3475,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3497,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3801,7 +3800,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3866,7 +3865,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3898,434 +3897,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4376,7 +4339,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4509,9 +4472,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "Seleccionar Categoría"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "Seleccionar Categoría"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4676,38 +4641,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4770,8 +4735,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4857,8 +4822,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4876,13 +4841,13 @@ msgstr ""
msgid "No matching images found"
msgstr "No se encontró ninguna acción coincidente"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5019,7 +4984,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5040,7 +5005,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5061,148 +5026,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6095,6 +6040,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6858,8 +6807,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6872,10 +6821,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6941,34 +6886,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7006,37 +6951,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7204,99 +7149,141 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+#, fuzzy
+#| msgid "Edited stock item"
+msgid "Initial Stock Quantity"
+msgstr "Elemento de stock editado"
+
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index c97ffb48b7..5829c5a125 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Confirmer"
@@ -118,8 +118,8 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Nom"
@@ -148,7 +148,7 @@ msgstr "Nom"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Nom"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Description (facultative)"
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Quantité"
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Pièce"
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr "Date de création"
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1324,7 +1325,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1332,7 +1333,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1340,7 +1341,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1557,7 +1558,7 @@ msgstr "{name.title()} Fichier"
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1693,7 +1694,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1722,7 +1723,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1730,7 +1731,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1739,7 +1740,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr "jours"
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2109,16 +2110,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2215,7 +2216,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2309,7 +2310,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,8 +2319,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2387,7 +2388,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2466,13 +2467,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2578,13 +2578,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2829,20 +2829,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3214,14 +3214,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3476,15 +3475,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3497,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3801,7 +3800,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3866,7 +3865,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3898,434 +3897,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr "IPN"
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4376,7 +4339,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4509,9 +4472,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "Sélectionnez une catégorie"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "Sélectionnez une catégorie"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4676,38 +4641,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4770,8 +4735,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4857,8 +4822,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4876,13 +4841,13 @@ msgstr ""
msgid "No matching images found"
msgstr "Aucune action correspondante trouvée"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5019,7 +4984,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5040,7 +5005,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5061,148 +5026,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6095,6 +6040,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6858,8 +6807,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6872,10 +6821,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6941,34 +6886,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7008,37 +6953,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7206,99 +7151,143 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+#, fuzzy
+#| msgid "Edited stock item"
+msgid "Initial Stock Quantity"
+msgstr "Article de stock modifié"
+
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+#, fuzzy
+#| msgid "The Bill of Materials contains trackable parts"
+msgid "Copy bill of materials from original part"
+msgstr "La BOM contient des pièces traçables"
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index fb91e2a25e..80c63e888f 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 2510d689cd..098b594a70 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index bed7736afc..c9e0a5c981 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\n"
"Last-Translator: \n"
"Language-Team: Italian\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 8df890b031..324d7222a4 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "確認"
@@ -118,8 +118,8 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr "無効な選択です"
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "お名前"
@@ -148,7 +148,7 @@ msgstr "お名前"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "お名前"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "説明 (オプション)"
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "パーツ"
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr "アセンブリ"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr "コンポーネント"
@@ -1720,7 +1721,7 @@ msgstr "コンポーネント"
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr "購入可能"
@@ -1728,7 +1729,7 @@ msgstr "購入可能"
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr "追跡可能"
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr "サプライヤー・パーツ"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "新しいサプライヤー・パーツを作成"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr "メーカー・パーツの在庫"
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ 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:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "パーツ"
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4507,9 +4470,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "カテゴリの選択"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "カテゴリの選択"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4551,7 +4516,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4674,38 +4639,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4768,8 +4733,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4855,8 +4820,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4874,13 +4839,13 @@ msgstr ""
msgid "No matching images found"
msgstr "一致するアクションが見つかりませんでした"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5017,7 +4982,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5038,7 +5003,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5059,148 +5024,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6091,6 +6036,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6854,8 +6803,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6868,10 +6817,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6937,34 +6882,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7004,37 +6949,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7202,99 +7147,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 507441c977..070e44e68c 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index ba8d5960a7..71de6efae5 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Bevestigen"
@@ -118,8 +118,8 @@ msgstr "Opmerking"
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr "Ongeldige keuze"
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Naam"
@@ -148,7 +148,7 @@ msgstr "Naam"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Naam"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Omschrijving (optioneel)"
msgid "parent"
msgstr "overkoepelend"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Aantal"
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Onderdeel"
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1324,7 +1325,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1332,7 +1333,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1340,7 +1341,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1557,7 +1558,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1693,7 +1694,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1722,7 +1723,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1730,7 +1731,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1739,7 +1740,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2109,16 +2110,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2215,7 +2216,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2309,7 +2310,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,8 +2319,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2387,7 +2388,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2466,13 +2467,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2578,13 +2578,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2829,20 +2829,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3214,14 +3214,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3476,15 +3475,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3497,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3801,7 +3800,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3866,7 +3865,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3898,434 +3897,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4376,7 +4339,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4509,9 +4472,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "Categorie selecteren"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "Categorie selecteren"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4676,38 +4641,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4770,8 +4735,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4857,8 +4822,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4876,13 +4841,13 @@ msgstr ""
msgid "No matching images found"
msgstr "Geen overeenkomende actie gevonden"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5019,7 +4984,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5040,7 +5005,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5061,148 +5026,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6093,6 +6038,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6856,8 +6805,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6870,10 +6819,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6939,34 +6884,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7006,37 +6951,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7204,99 +7149,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index f79cdcc619..8d749350c3 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Bekreft"
@@ -118,8 +118,8 @@ msgstr "Kommenter"
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr "Ugyldig valg"
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Navn"
@@ -148,7 +148,7 @@ msgstr "Navn"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Navn"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Beskrivelse (valgfritt)"
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4507,9 +4470,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "Velg kategori"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "Velg kategori"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4551,7 +4516,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4674,38 +4639,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4768,8 +4733,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4855,8 +4820,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4874,13 +4839,13 @@ msgstr ""
msgid "No matching images found"
msgstr "Ingen samsvarende handling funnet"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5017,7 +4982,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5038,7 +5003,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5059,148 +5024,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6091,6 +6036,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6854,8 +6803,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6868,10 +6817,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6937,34 +6882,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7004,37 +6949,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7202,99 +7147,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index af16b6a53e..5981eda3de 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Potwierdź"
@@ -118,8 +118,8 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr "Błędny wybór"
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Nazwa"
@@ -148,7 +148,7 @@ msgstr "Nazwa"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Nazwa"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Opis (opcjonalny)"
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Ilość"
@@ -671,7 +671,7 @@ msgstr "Odwołanie do zamówienia wykonania"
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,8 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Część"
@@ -780,7 +780,7 @@ msgstr "Kod partii"
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr "Data utworzenia"
@@ -808,8 +808,9 @@ msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr "Odpowiedzialny"
@@ -825,7 +826,7 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
@@ -838,7 +839,7 @@ msgstr "Link do zewnętrznego adresu URL"
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr "Dodaj załącznik"
@@ -1324,7 +1325,7 @@ msgstr "Dodaj załącznik"
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr "Edytuj załącznik"
@@ -1332,7 +1333,7 @@ msgstr "Edytuj załącznik"
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1340,7 +1341,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr "Usuń załącznik"
@@ -1557,7 +1558,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1693,7 +1694,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr "Złożenie"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr "Komponent"
@@ -1722,7 +1723,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr "Możliwość zakupu"
@@ -1730,7 +1731,7 @@ msgstr "Możliwość zakupu"
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1739,7 +1740,7 @@ msgstr "Możliwość sprzedaży"
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr "Możliwość śledzenia"
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr "Wirtualny"
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr "dni"
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr "Grupuj według komponentu"
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr "Cena"
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr "Domyślny"
@@ -2109,16 +2110,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr "Punkt kontaktowy"
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr "Łącze"
@@ -2215,7 +2216,7 @@ msgstr "Łącze"
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr "Obraz"
@@ -2309,7 +2310,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,8 +2319,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr "Jednostki"
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2387,7 +2388,7 @@ msgstr "Opakowanie"
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr "wielokrotność"
@@ -2466,13 +2467,12 @@ msgstr "Komponenty dostawcy"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr "Nowy dostawca części"
@@ -2578,13 +2578,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr "Dodaj parametr"
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr "Stan"
@@ -2767,7 +2767,7 @@ msgstr "Informacja cenowa"
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
@@ -2829,20 +2829,20 @@ msgstr "Firmy"
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3214,14 +3214,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr "Nowa lokalizacja"
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr "Cena jednostkowa"
@@ -3476,15 +3475,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Części"
@@ -3498,7 +3497,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:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3801,7 +3800,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -3866,7 +3865,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr "Część nadrzędna"
@@ -3898,434 +3897,398 @@ msgstr "Powiązane części"
msgid "Select part category"
msgstr "Wybierz kategorię części"
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr "Kopiuj BOM"
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr "Nazwa części"
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr "IPN"
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr "Czy ta część może być zbudowana z innych części?"
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr "Czy ta część może być użyta do budowy innych części?"
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr "Aktywny"
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr "Dane"
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4376,7 +4339,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4509,9 +4472,11 @@ msgstr "Parametry części"
msgid "Create Part Category"
msgstr "Utwórz nową kategorię części"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr "Utwórz nową lokalizację magazynową"
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Create New Part"
+msgid "Create Part"
+msgstr "Utwórz nową część"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4676,38 +4641,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4770,8 +4735,8 @@ msgid "Part is virtual (not a physical part)"
msgstr "Część jest wirtualna (nie fizyczna)"
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr "Nieaktywny"
@@ -4857,8 +4822,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4876,13 +4841,13 @@ msgstr ""
msgid "No matching images found"
msgstr "Nie znaleziono pasującej akcji"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5019,7 +4984,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5040,7 +5005,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5061,148 +5026,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr "Dodaj powiązaną część"
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr "Utwórz nową część"
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6097,6 +6042,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr "Utwórz nową lokalizację magazynową"
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6860,8 +6809,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6874,10 +6823,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6943,34 +6888,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7010,37 +6955,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7208,101 +7153,155 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
+#: templates/js/translated/part.js:43
+#, fuzzy
+#| msgid "Part Filters"
+msgid "Part Attributes"
+msgstr "Filtr części"
+
+#: templates/js/translated/part.js:86
+#, fuzzy
+#| msgid "Part description"
+msgid "Part Creation Options"
+msgstr "Opis części"
+
+#: templates/js/translated/part.js:92
+#, fuzzy
+#| msgid "Stock Quantity"
+msgid "Initial Stock Quantity"
+msgstr "Ilość w magazynie"
+
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+#, fuzzy
+#| msgid "Part Parameters"
+msgid "Copy Category Parameters"
+msgstr "Parametry części"
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+#, fuzzy
+#| msgid "Part description"
+msgid "Part Duplication Options"
+msgstr "Opis części"
+
+#: templates/js/translated/part.js:121
+#, fuzzy
+#| msgid "Image"
+msgid "Copy Image"
+msgstr "Obraz"
+
+#: templates/js/translated/part.js:122
+#, fuzzy
+#| msgid "Copy BOM from parent part"
+msgid "Copy image from original part"
+msgstr "Kopiuj BOM z części nadrzędnej"
+
+#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr "Kopiuj BOM"
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
#, fuzzy
#| msgid "Select part category"
msgid "Parent part category"
msgstr "Wybierz kategorię części"
-#: templates/js/translated/part.js:56
-msgid "New Category"
-msgstr "Nowa kategoria"
-
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:65
-msgid "New Parent"
-msgstr ""
-
-#: templates/js/translated/part.js:128
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
@@ -8059,6 +8058,9 @@ msgstr "Uprawnienie do edycji przedmiotów"
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
+#~ msgid "New Category"
+#~ msgstr "Nowa kategoria"
+
#~ msgid "Create new category"
#~ msgstr "Utwórz nową kategorię"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 3fa07d114c..8a570ff86a 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Подтвердить"
@@ -118,8 +118,8 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Название"
@@ -148,7 +148,7 @@ msgstr "Название"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Название"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Описание (необязательно)"
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Количество"
@@ -671,7 +671,7 @@ msgstr "Ссылка на заказ"
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Детали"
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr "Ответственный"
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
@@ -838,7 +839,7 @@ msgstr "Ссылка на внешний URL"
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1324,7 +1325,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1332,7 +1333,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1340,7 +1341,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1557,7 +1558,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1693,7 +1694,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1722,7 +1723,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1730,7 +1731,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1739,7 +1740,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2109,16 +2110,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2215,7 +2216,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2309,7 +2310,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,8 +2319,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2387,7 +2388,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2466,13 +2467,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2578,13 +2578,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2829,20 +2829,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3214,14 +3214,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3444,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3476,15 +3475,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3498,7 +3497,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3801,7 +3800,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3866,7 +3865,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3898,434 +3897,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4376,7 +4339,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4509,9 +4472,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "Выбрать категорию"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "Выбрать категорию"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4676,38 +4641,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4770,8 +4735,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4857,8 +4822,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4876,13 +4841,13 @@ msgstr ""
msgid "No matching images found"
msgstr "Соответствующее действие не найдено"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5019,7 +4984,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5040,7 +5005,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5061,148 +5026,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6095,6 +6040,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6858,8 +6807,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6872,10 +6821,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6941,34 +6886,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7008,37 +6953,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7206,99 +7151,141 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+#, fuzzy
+#| msgid "Edited stock item"
+msgid "Initial Stock Quantity"
+msgstr "Отредактированный товар"
+
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 7a82ee0347..f1dd79192f 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 446da38e60..97c5a60714 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index c8f9fa7ca4..452b7e8c60 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "Onay"
@@ -118,8 +118,8 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "Adı"
@@ -148,7 +148,7 @@ msgstr "Adı"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "Adı"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr "Açıklama (isteğe bağlı)"
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr "Miktar"
@@ -671,7 +671,7 @@ msgstr "Yapım İşi Emri Referansı"
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,8 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/js/translated/barcode.js:362 templates/js/translated/bom.js:183
#: templates/js/translated/build.js:586 templates/js/translated/build.js:873
#: templates/js/translated/build.js:1139 templates/js/translated/company.js:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr "Parça"
@@ -780,7 +780,7 @@ msgstr "Sıra numarası"
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
@@ -808,8 +808,9 @@ msgstr "Bu yapım işi emrini veren kullanıcı"
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr "Sorumlu"
@@ -825,7 +826,7 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
@@ -838,7 +839,7 @@ msgstr "Harici URL'ye bağlantı"
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1315,7 +1316,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1324,7 +1325,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr "Ek Düzenle"
@@ -1332,7 +1333,7 @@ msgstr "Ek Düzenle"
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1340,7 +1341,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr "Eki Sil"
@@ -1557,7 +1558,7 @@ msgstr "{name.title()} Dosya"
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1693,7 +1694,7 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1703,7 +1704,7 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1713,7 +1714,7 @@ msgstr "Montaj"
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr "Bileşen"
@@ -1722,7 +1723,7 @@ msgstr "Bileşen"
msgid "Parts can be used as sub-components by default"
msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr "Satın Alınabilir"
@@ -1730,7 +1731,7 @@ msgstr "Satın Alınabilir"
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr "Satılabilir"
@@ -1739,7 +1740,7 @@ msgstr "Satılabilir"
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1749,7 +1750,7 @@ msgstr "Takip Edilebilir"
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1759,328 +1760,328 @@ msgstr "Sanal"
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2109,16 +2110,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2204,10 +2205,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2215,7 +2216,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2309,7 +2310,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2318,8 +2319,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2364,16 +2365,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2387,7 +2388,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2466,13 +2467,12 @@ msgstr "Tedarikçi Parçaları"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr "Yeni tedarikçi parçası oluştur"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
@@ -2578,13 +2578,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2662,7 +2662,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2688,8 +2688,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr "Stok"
@@ -2767,7 +2767,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2775,11 +2775,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2829,20 +2829,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
@@ -3214,14 +3214,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr "Yeni Konum"
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr "Yeni stok konumu oluştur"
@@ -3444,7 +3443,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3476,15 +3475,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Parçalar"
@@ -3498,7 +3497,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3801,7 +3800,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -3866,7 +3865,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin"
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3898,434 +3897,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr "Kategori parametre şablonlarını dahil et"
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr "Üst kategorilerin parametre şablonlarını dahil et"
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr "Parametre şablonunu tüm kategorilere ekle"
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr "Bu parça başka bir parçanın çeşidi mi?"
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr "DPN"
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?"
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir"
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır"
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir"
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4376,7 +4339,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4509,9 +4472,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "Kategori Ayarla"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr "Yeni Stok konumu oluştur"
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Create Variant"
+msgid "Create Part"
+msgstr "Çeşit Oluştur"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4553,7 +4518,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4676,38 +4641,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4770,8 +4735,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4857,8 +4822,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4876,13 +4841,13 @@ msgstr ""
msgid "No matching images found"
msgstr "Eşleşen eylem bulunamadı"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5019,7 +4984,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5040,7 +5005,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr "Stok Yok"
@@ -5061,148 +5026,128 @@ msgstr "%(full_name)s şablonu için yeni bir çeşit oluştur."
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr "Çeşit Oluştur"
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6105,6 +6050,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr "Yeni Stok konumu oluştur"
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr "Stoku Seri Numarala"
@@ -6868,8 +6817,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6882,10 +6831,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6951,34 +6896,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr "Şablon Parça"
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7018,37 +6963,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7216,101 +7161,157 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
+#: templates/js/translated/part.js:43
+#, fuzzy
+#| msgid "Part Categories"
+msgid "Part Attributes"
+msgstr "Parça Kategorileri"
+
+#: templates/js/translated/part.js:86
+#, fuzzy
+#| msgid "Part actions"
+msgid "Part Creation Options"
+msgstr "Parça işlemleri"
+
+#: templates/js/translated/part.js:92
+#, fuzzy
+#| msgid "Destination stock item"
+msgid "Initial Stock Quantity"
+msgstr "Hedef stok kalemi"
+
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+#, fuzzy
+#| msgid "Copy Category Parameter Templates"
+msgid "Copy Category Parameters"
+msgstr "Kategori Paremetre Sablonu Kopyala"
+
+#: templates/js/translated/part.js:100
+#, fuzzy
+#| msgid "Add parameter template to same level categories"
+msgid "Copy parameter templates from selected part category"
+msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
+
+#: templates/js/translated/part.js:110
+#, fuzzy
+#| msgid "Part actions"
+msgid "Part Duplication Options"
+msgstr "Parça işlemleri"
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+#, fuzzy
+#| msgid "The Bill of Materials contains trackable parts"
+msgid "Copy bill of materials from original part"
+msgstr "Bu Malzeme Listesi takip edilebilir parçalar içeriyor"
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+#, fuzzy
+#| msgid "Copy category parameter templates when creating a part"
+msgid "Copy parameter data from original part"
+msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
+
+#: templates/js/translated/part.js:148
#, fuzzy
#| msgid "Set category"
msgid "Parent part category"
msgstr "Kategori ayarla"
-#: templates/js/translated/part.js:56
-msgid "New Category"
-msgstr ""
-
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
-msgstr ""
-
-#: templates/js/translated/part.js:65
-msgid "New Parent"
-msgstr ""
-
-#: templates/js/translated/part.js:128
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
@@ -8067,5 +8068,11 @@ msgstr ""
msgid "Permission to delete items"
msgstr ""
+#~ msgid "Include category parameter templates"
+#~ msgstr "Kategori parametre şablonlarını dahil et"
+
+#~ msgid "Include parent categories parameter templates"
+#~ msgstr "Üst kategorilerin parametre şablonlarını dahil et"
+
#~ msgid "Stock quantity to assign"
#~ msgstr "Atanacak stok miktarı"
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index ffb6e63c44..e6e790c45a 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr ""
@@ -118,8 +118,8 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr ""
@@ -148,7 +148,7 @@ msgstr ""
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr ""
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4505,8 +4468,8 @@ msgstr ""
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
+#: part/templates/part/category.html:279
+msgid "Create Part"
msgstr ""
#: part/templates/part/category_delete.html:5
@@ -4549,7 +4512,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4672,38 +4635,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4766,8 +4729,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4853,8 +4816,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4870,13 +4833,13 @@ msgstr ""
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5013,7 +4976,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5034,7 +4997,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5055,148 +5018,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6087,6 +6030,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6850,8 +6797,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6864,10 +6811,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6933,34 +6876,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -6998,37 +6941,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7196,99 +7139,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index faa2807e83..cd561eb606 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-04 08:08+0000\n"
+"POT-Creation-Date: 2021-08-04 22:16+0000\n"
"PO-Revision-Date: 2021-08-01 23:34\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:526
+#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:545
msgid "Confirm"
msgstr "确认"
@@ -118,8 +118,8 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:954
-#: common/models.py:955 part/models.py:2097
+#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:955
+#: common/models.py:956 part/models.py:2035
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:1537
msgid "User"
@@ -134,11 +134,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
-#: label/models.py:112 part/models.py:718 part/models.py:2246
+#: label/models.py:112 part/models.py:656 part/models.py:2184
#: part/templates/part/part_base.html:233 report/models.py:181
#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:545 templates/js/translated/part.js:237
-#: templates/js/translated/part.js:370 templates/js/translated/part.js:862
+#: templates/js/translated/company.js:545 templates/js/translated/part.js:328
+#: templates/js/translated/part.js:461 templates/js/translated/part.js:953
#: templates/js/translated/stock.js:1330
msgid "Name"
msgstr "名称"
@@ -148,7 +148,7 @@ msgstr "名称"
#: company/models.py:519 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
#: order/models.py:158 order/templates/order/purchase_order_detail.html:312
-#: part/models.py:741 part/templates/part/part_base.html:238
+#: part/models.py:679 part/templates/part/part_base.html:238
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
@@ -159,9 +159,9 @@ msgstr "名称"
#: templates/js/translated/build.js:1162 templates/js/translated/company.js:261
#: templates/js/translated/company.js:459
#: templates/js/translated/company.js:741 templates/js/translated/order.js:247
-#: templates/js/translated/order.js:349 templates/js/translated/part.js:296
-#: templates/js/translated/part.js:480 templates/js/translated/part.js:657
-#: templates/js/translated/part.js:874 templates/js/translated/part.js:942
+#: templates/js/translated/order.js:349 templates/js/translated/part.js:387
+#: templates/js/translated/part.js:571 templates/js/translated/part.js:748
+#: templates/js/translated/part.js:965 templates/js/translated/part.js:1033
#: templates/js/translated/stock.js:914 templates/js/translated/stock.js:1342
#: templates/js/translated/stock.js:1387
msgid "Description"
@@ -175,7 +175,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2482
+#: InvenTree/serializers.py:52 part/models.py:2420
msgid "Must be a valid number"
msgstr ""
@@ -522,7 +522,7 @@ msgstr ""
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:983
+#: build/templates/build/detail.html:34 common/models.py:984
#: company/forms.py:42 company/templates/company/supplier_part.html:226
#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:706
#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30
@@ -531,10 +531,10 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:200
#: order/templates/order/sales_order_detail.html:207
#: order/templates/order/sales_order_detail.html:292
-#: order/templates/order/sales_order_detail.html:364 part/forms.py:325
-#: part/forms.py:341 part/forms.py:357 part/models.py:2384
+#: order/templates/order/sales_order_detail.html:364 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2322
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
+#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -546,8 +546,8 @@ msgstr ""
#: templates/js/translated/build.js:271 templates/js/translated/build.js:606
#: templates/js/translated/build.js:1172
#: templates/js/translated/model_renderers.js:56
-#: templates/js/translated/order.js:462 templates/js/translated/part.js:1047
-#: templates/js/translated/part.js:1169 templates/js/translated/part.js:1225
+#: templates/js/translated/order.js:462 templates/js/translated/part.js:1138
+#: templates/js/translated/part.js:1260 templates/js/translated/part.js:1316
#: templates/js/translated/stock.js:1522 templates/js/translated/stock.js:1720
msgid "Quantity"
msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
#: build/models.py:179 order/models.py:246 order/models.py:533
#: order/models.py:713 order/templates/order/purchase_order_detail.html:343
-#: order/templates/order/sales_order_detail.html:359 part/models.py:2393
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2331
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
@@ -700,10 +700,10 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:297
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:344 part/models.py:347
-#: part/models.py:2042 part/models.py:2058 part/models.py:2077
-#: part/models.py:2095 part/models.py:2174 part/models.py:2278
-#: part/models.py:2368 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:295
+#: part/models.py:1980 part/models.py:1996 part/models.py:2015
+#: part/models.py:2033 part/models.py:2112 part/models.py:2216
+#: part/models.py:2306 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -714,8 +714,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:400
-#: templates/js/translated/company.js:650 templates/js/translated/part.js:461
-#: templates/js/translated/part.js:624 templates/js/translated/stock.js:120
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:552
+#: templates/js/translated/part.js:715 templates/js/translated/stock.js:120
#: templates/js/translated/stock.js:883 templates/js/translated/stock.js:1708
msgid "Part"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:913
+#: build/models.py:272 order/models.py:162 part/models.py:851
#: part/templates/part/part_base.html:264 templates/js/translated/order.js:362
msgid "Creation Date"
msgstr ""
@@ -808,8 +808,9 @@ msgstr ""
#: build/models.py:303 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:917
+#: order/templates/order/sales_order_base.html:140 part/models.py:855
#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:930
msgid "Responsible"
msgstr ""
@@ -825,7 +826,7 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:775 stock/models.py:503
+#: build/models.py:310 part/models.py:713 stock/models.py:503
msgid "Link to external URL"
msgstr ""
@@ -838,7 +839,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:419
#: order/templates/order/sales_order_detail.html:439
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:902
+#: order/templates/order/so_navbar.html:36 part/models.py:840
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108
#: part/templates/part/navbar.html:111
#: report/templates/report/inventree_build_order_base.html:173
@@ -1313,7 +1314,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:156
#: order/templates/order/sales_order_detail.html:145
-#: part/templates/part/detail.html:801 stock/templates/stock/item.html:251
+#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -1322,7 +1323,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:128
#: order/templates/order/sales_order_detail.html:118
-#: part/templates/part/detail.html:755 stock/templates/stock/item.html:219
+#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219
msgid "Edit Attachment"
msgstr ""
@@ -1330,7 +1331,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:135
#: order/templates/order/sales_order_detail.html:124
-#: part/templates/part/detail.html:764 stock/templates/stock/item.html:228
+#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228
msgid "Confirm Delete Operation"
msgstr ""
@@ -1338,7 +1339,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:136
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:765 stock/templates/stock/item.html:229
+#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229
msgid "Delete Attachment"
msgstr ""
@@ -1555,7 +1556,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:322 common/models.py:814 common/models.py:947
+#: common/models.py:322 common/models.py:815 common/models.py:948
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1691,7 +1692,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:617 part/models.py:2280 report/models.py:187
+#: common/models.py:617 part/models.py:2218 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:25
#: templates/js/translated/table_filters.js:329
msgid "Template"
@@ -1701,7 +1702,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:624 part/models.py:865
+#: common/models.py:624 part/models.py:803
#: templates/js/translated/table_filters.js:133
#: templates/js/translated/table_filters.js:341
msgid "Assembly"
@@ -1711,7 +1712,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:631 part/models.py:871
+#: common/models.py:631 part/models.py:809
#: templates/js/translated/table_filters.js:345
msgid "Component"
msgstr ""
@@ -1720,7 +1721,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:638 part/models.py:882
+#: common/models.py:638 part/models.py:820
msgid "Purchaseable"
msgstr ""
@@ -1728,7 +1729,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:645 part/models.py:887
+#: common/models.py:645 part/models.py:825
#: templates/js/translated/table_filters.js:353
msgid "Salable"
msgstr ""
@@ -1737,7 +1738,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:652 part/models.py:877
+#: common/models.py:652 part/models.py:815
#: templates/js/translated/table_filters.js:33
#: templates/js/translated/table_filters.js:357
msgid "Trackable"
@@ -1747,7 +1748,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:659 part/models.py:897
+#: common/models.py:659 part/models.py:835
#: part/templates/part/part_base.html:61
#: templates/js/translated/table_filters.js:29
msgid "Virtual"
@@ -1757,328 +1758,328 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:666
+#: common/models.py:667
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:667
+#: common/models.py:668
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:673
+#: common/models.py:674
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:674
+#: common/models.py:675
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:680
+#: common/models.py:681
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:681
+#: common/models.py:682
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:687
+#: common/models.py:688
msgid "Show related parts"
msgstr ""
-#: common/models.py:688
+#: common/models.py:689
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:694
+#: common/models.py:695
msgid "Create initial stock"
msgstr ""
-#: common/models.py:695
+#: common/models.py:696
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:701
+#: common/models.py:702
msgid "Internal Prices"
msgstr ""
-#: common/models.py:702
+#: common/models.py:703
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:708
+#: common/models.py:709
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:709
+#: common/models.py:710
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:715 templates/stats.html:25
+#: common/models.py:716 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:716
+#: common/models.py:717
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:722
+#: common/models.py:723
msgid "Page Size"
msgstr ""
-#: common/models.py:723
+#: common/models.py:724
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:733
+#: common/models.py:734
msgid "Test Reports"
msgstr ""
-#: common/models.py:734
+#: common/models.py:735
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:740
+#: common/models.py:741
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:741
+#: common/models.py:742
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:747
+#: common/models.py:748
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:748
+#: common/models.py:749
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:755
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:755
+#: common/models.py:756
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:757
+#: common/models.py:758
msgid "days"
msgstr ""
-#: common/models.py:762
+#: common/models.py:763
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:763
+#: common/models.py:764
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:769
+#: common/models.py:770
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:770
+#: common/models.py:771
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:776
+#: common/models.py:777
msgid "Group by Part"
msgstr ""
-#: common/models.py:777
+#: common/models.py:778
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:783
+#: common/models.py:784
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:784
+#: common/models.py:785
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:789
+#: common/models.py:790
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:790
+#: common/models.py:791
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:795
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:795
+#: common/models.py:796
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:800
+#: common/models.py:801
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:801
+#: common/models.py:802
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:825
+#: common/models.py:826
msgid "Show starred parts"
msgstr ""
-#: common/models.py:826
+#: common/models.py:827
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:831
+#: common/models.py:832
msgid "Show latest parts"
msgstr ""
-#: common/models.py:832
+#: common/models.py:833
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:837
+#: common/models.py:838
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:838
+#: common/models.py:839
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:844
+#: common/models.py:845
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:845
+#: common/models.py:846
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:850
+#: common/models.py:851
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:851
+#: common/models.py:852
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:857
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:857
+#: common/models.py:858
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:862
+#: common/models.py:863
msgid "Show low stock"
msgstr ""
-#: common/models.py:863
+#: common/models.py:864
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:868
+#: common/models.py:869
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:869
+#: common/models.py:870
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:874
+#: common/models.py:875
msgid "Show needed stock"
msgstr ""
-#: common/models.py:875
+#: common/models.py:876
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:880
+#: common/models.py:881
msgid "Show expired stock"
msgstr ""
-#: common/models.py:881
+#: common/models.py:882
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:886
+#: common/models.py:887
msgid "Show stale stock"
msgstr ""
-#: common/models.py:887
+#: common/models.py:888
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:892
+#: common/models.py:893
msgid "Show pending builds"
msgstr ""
-#: common/models.py:893
+#: common/models.py:894
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:898
+#: common/models.py:899
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:899
+#: common/models.py:900
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:904
+#: common/models.py:905
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:905
+#: common/models.py:906
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:910
+#: common/models.py:911
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:911
+#: common/models.py:912
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:916
+#: common/models.py:917
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:917
+#: common/models.py:918
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:922
+#: common/models.py:923
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:923
+#: common/models.py:924
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:930
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:930
+#: common/models.py:931
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:984 company/forms.py:43
+#: common/models.py:985 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:991 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1052
+#: common/models.py:992 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1143
msgid "Price"
msgstr ""
-#: common/models.py:992
+#: common/models.py:993
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1085
+#: common/models.py:1086
msgid "Default"
msgstr ""
@@ -2107,16 +2108,16 @@ msgstr ""
#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
#: part/templates/part/bom_upload/upload_file.html:45
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:634
-#: part/views.py:1248
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
+#: part/views.py:882
msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:635
-#: part/views.py:1249
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
+#: part/views.py:883
msgid "Match Fields"
msgstr ""
@@ -2202,10 +2203,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:774
+#: order/models.py:160 part/models.py:712
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:448
-#: templates/js/translated/company.js:730 templates/js/translated/part.js:718
+#: templates/js/translated/company.js:730 templates/js/translated/part.js:809
msgid "Link"
msgstr ""
@@ -2213,7 +2214,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:784
+#: company/models.py:136 part/models.py:722
msgid "Image"
msgstr ""
@@ -2307,7 +2308,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:551 templates/js/translated/part.js:379
+#: templates/js/translated/company.js:551 templates/js/translated/part.js:470
#: templates/js/translated/stock.js:493
msgid "Value"
msgstr ""
@@ -2316,8 +2317,8 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:859 part/models.py:2248
-#: templates/js/translated/company.js:557 templates/js/translated/part.js:385
+#: company/models.py:426 part/models.py:797 part/models.py:2186
+#: templates/js/translated/company.js:557 templates/js/translated/part.js:476
msgid "Units"
msgstr ""
@@ -2362,16 +2363,16 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2396 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2334 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1652
+#: company/models.py:529 part/models.py:1590
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
@@ -2385,7 +2386,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1654
+#: company/models.py:533 part/models.py:1592
msgid "multiple"
msgstr ""
@@ -2464,13 +2465,12 @@ msgstr ""
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
-#: templates/js/translated/part.js:110
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289 templates/js/translated/part.js:109
+#: part/templates/part/detail.html:289
msgid "New Supplier Part"
msgstr ""
@@ -2576,13 +2576,13 @@ msgstr ""
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:825
+#: part/templates/part/detail.html:826
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:826
+#: part/templates/part/detail.html:827
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2660,7 +2660,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:718
+#: part/templates/part/detail.html:719
msgid "Add Parameter"
msgstr ""
@@ -2686,8 +2686,8 @@ msgstr ""
#: templates/InvenTree/search.html:232
#: templates/InvenTree/settings/navbar.html:83
#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:300 templates/js/translated/part.js:525
-#: templates/js/translated/part.js:685 templates/js/translated/stock.js:121
+#: templates/js/translated/part.js:391 templates/js/translated/part.js:616
+#: templates/js/translated/part.js:776 templates/js/translated/stock.js:121
#: templates/js/translated/stock.js:923 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2765,7 +2765,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:253 part/views.py:2088
+#: part/templates/part/prices.html:253 part/views.py:1722
msgid "Add Price Break"
msgstr ""
@@ -2773,11 +2773,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:2150
+#: company/templates/company/supplier_part.html:199 part/views.py:1784
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:2136
+#: company/templates/company/supplier_part.html:213 part/views.py:1770
msgid "Edit Price Break"
msgstr ""
@@ -2827,20 +2827,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:974
+#: company/views.py:129 part/views.py:608
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:1006
+#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:1013
+#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:1022
+#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3212,14 +3212,13 @@ msgstr ""
#: order/templates/order/order_base.html:196
#: order/templates/order/purchase_order_detail.html:265
-#: part/templates/part/category.html:279
-#: stock/templates/stock/location.html:250 templates/js/translated/part.js:95
+#: stock/templates/stock/location.html:250
msgid "New Location"
msgstr ""
#: order/templates/order/order_base.html:197
#: order/templates/order/purchase_order_detail.html:266
-#: stock/templates/stock/location.html:42 templates/js/translated/part.js:96
+#: stock/templates/stock/location.html:42
msgid "Create new stock location"
msgstr ""
@@ -3442,7 +3441,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:360
#: order/templates/order/sales_order_detail.html:376
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1216
+#: templates/js/translated/part.js:1118 templates/js/translated/part.js:1307
msgid "Unit Price"
msgstr ""
@@ -3474,15 +3473,15 @@ msgstr ""
msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:348 part/templates/part/cat_link.html:7
+#: order/templates/order/receive_parts.html:14 part/api.py:49
+#: 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
#: part/templates/part/category_navbar.html:24
#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/navbar.html:71
#: templates/InvenTree/settings/navbar.html:73
-#: templates/js/translated/part.js:886 templates/navbar.html:23
+#: templates/js/translated/part.js:977 templates/navbar.html:23
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3496,7 +3495,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:160 templates/js/translated/part.js:701
+#: part/templates/part/part_base.html:160 templates/js/translated/part.js:792
msgid "On Order"
msgstr ""
@@ -3799,7 +3798,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:74 part/models.py:793
+#: part/bom.py:133 part/models.py:73 part/models.py:731
#: part/templates/part/category.html:75 part/templates/part/part_base.html:282
msgid "Default Location"
msgstr ""
@@ -3864,7 +3863,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2278
+#: part/forms.py:96 part/models.py:2216
msgid "Parent Part"
msgstr ""
@@ -3896,434 +3895,398 @@ msgstr ""
msgid "Select part category"
msgstr ""
-#: part/forms.py:194
-msgid "Duplicate all BOM data for this part"
-msgstr ""
-
-#: part/forms.py:195
-msgid "Copy BOM"
-msgstr ""
-
-#: part/forms.py:200
-msgid "Duplicate all parameter data for this part"
-msgstr ""
-
-#: part/forms.py:201
-msgid "Copy Parameters"
-msgstr ""
-
-#: part/forms.py:206
-msgid "Confirm part creation"
-msgstr ""
-
-#: part/forms.py:211
-msgid "Include category parameter templates"
-msgstr ""
-
-#: part/forms.py:216
-msgid "Include parent categories parameter templates"
-msgstr ""
-
-#: part/forms.py:221
-msgid "Initial stock amount"
-msgstr ""
-
-#: part/forms.py:222
-msgid "Create stock for this part"
-msgstr ""
-
-#: part/forms.py:302
+#: part/forms.py:226
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:306
+#: part/forms.py:230
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:326
+#: part/forms.py:250
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:75
+#: part/models.py:74
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords"
msgstr ""
-#: part/models.py:78
+#: part/models.py:77
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:88 part/models.py:2324
+#: part/models.py:87 part/models.py:2262
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:89 part/templates/part/category.html:32
+#: part/models.py:88 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:433
+#: part/models.py:381
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:495 part/models.py:507
+#: part/models.py:433 part/models.py:445
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:604
+#: part/models.py:542
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:608
+#: part/models.py:546
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:613
+#: part/models.py:551
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:692
+#: part/models.py:630
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:717
+#: part/models.py:655
msgid "Part name"
msgstr ""
-#: part/models.py:724
+#: part/models.py:662
msgid "Is Template"
msgstr ""
-#: part/models.py:725
+#: part/models.py:663
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:735
+#: part/models.py:673
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:736
+#: part/models.py:674
msgid "Variant Of"
msgstr ""
-#: part/models.py:742
+#: part/models.py:680
msgid "Part description"
msgstr ""
-#: part/models.py:747 part/templates/part/category.html:82
+#: part/models.py:685 part/templates/part/category.html:82
#: part/templates/part/part_base.html:251
msgid "Keywords"
msgstr ""
-#: part/models.py:748
+#: part/models.py:686
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:755 part/models.py:2323
+#: part/models.py:693 part/models.py:2261
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:165
-#: templates/js/translated/part.js:672
+#: templates/js/translated/part.js:763
msgid "Category"
msgstr ""
-#: part/models.py:756
+#: part/models.py:694
msgid "Part category"
msgstr ""
-#: part/models.py:761 part/templates/part/part_base.html:227
-#: templates/js/translated/part.js:288 templates/js/translated/part.js:516
+#: part/models.py:699 part/templates/part/part_base.html:227
+#: templates/js/translated/part.js:379 templates/js/translated/part.js:607
msgid "IPN"
msgstr ""
-#: part/models.py:762
+#: part/models.py:700
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:768
+#: part/models.py:706
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:769 part/templates/part/part_base.html:244
-#: report/models.py:200 templates/js/translated/part.js:292
+#: part/models.py:707 part/templates/part/part_base.html:244
+#: report/models.py:200 templates/js/translated/part.js:383
msgid "Revision"
msgstr ""
-#: part/models.py:791
+#: part/models.py:729
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:838 part/templates/part/part_base.html:289
+#: part/models.py:776 part/templates/part/part_base.html:289
msgid "Default Supplier"
msgstr ""
-#: part/models.py:839
+#: part/models.py:777
msgid "Default supplier part"
msgstr ""
-#: part/models.py:846
+#: part/models.py:784
msgid "Default Expiry"
msgstr ""
-#: part/models.py:847
+#: part/models.py:785
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:852
+#: part/models.py:790
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:853
+#: part/models.py:791
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:860
+#: part/models.py:798
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:866
+#: part/models.py:804
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:872
+#: part/models.py:810
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:878
+#: part/models.py:816
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:883
+#: part/models.py:821
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:888
+#: part/models.py:826
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:892 templates/js/translated/table_filters.js:21
+#: part/models.py:830 templates/js/translated/table_filters.js:21
#: templates/js/translated/table_filters.js:69
#: templates/js/translated/table_filters.js:255
#: templates/js/translated/table_filters.js:324
msgid "Active"
msgstr ""
-#: part/models.py:893
+#: part/models.py:831
msgid "Is this part active?"
msgstr ""
-#: part/models.py:898
+#: part/models.py:836
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:903
+#: part/models.py:841
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "BOM checksum"
msgstr ""
-#: part/models.py:906
+#: part/models.py:844
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:909
+#: part/models.py:847
msgid "BOM checked by"
msgstr ""
-#: part/models.py:911
+#: part/models.py:849
msgid "BOM checked date"
msgstr ""
-#: part/models.py:915
+#: part/models.py:853
msgid "Creation User"
msgstr ""
-#: part/models.py:1654
+#: part/models.py:1592
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2142
+#: part/models.py:2080
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2159
+#: part/models.py:2097
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2179 templates/js/translated/part.js:937
+#: part/models.py:2117 templates/js/translated/part.js:1028
#: templates/js/translated/stock.js:473
msgid "Test Name"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2118
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2185
+#: part/models.py:2123
msgid "Test Description"
msgstr ""
-#: part/models.py:2186
+#: part/models.py:2124
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2191 templates/js/translated/part.js:946
+#: part/models.py:2129 templates/js/translated/part.js:1037
#: templates/js/translated/table_filters.js:241
msgid "Required"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2130
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2197 templates/js/translated/part.js:954
+#: part/models.py:2135 templates/js/translated/part.js:1045
msgid "Requires Value"
msgstr ""
-#: part/models.py:2198
+#: part/models.py:2136
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2203 templates/js/translated/part.js:961
+#: part/models.py:2141 templates/js/translated/part.js:1052
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2204
+#: part/models.py:2142
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2241
+#: part/models.py:2179
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2246
+#: part/models.py:2184
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2186
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2280 part/models.py:2329 part/models.py:2330
+#: part/models.py:2218 part/models.py:2267 part/models.py:2268
#: templates/InvenTree/settings/settings.html:160
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Data"
msgstr ""
-#: part/models.py:2282
+#: part/models.py:2220
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2334 templates/InvenTree/settings/settings.html:169
+#: part/models.py:2272 templates/InvenTree/settings/settings.html:169
msgid "Default Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2273
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2307
msgid "Select parent part"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2315
msgid "Sub part"
msgstr ""
-#: part/models.py:2378
+#: part/models.py:2316
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2322
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2386 templates/js/translated/bom.js:236
+#: part/models.py:2324 templates/js/translated/bom.js:236
#: templates/js/translated/bom.js:298
msgid "Optional"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2324
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2327
msgid "Overage"
msgstr ""
-#: part/models.py:2390
+#: part/models.py:2328
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2393
+#: part/models.py:2331
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2334
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "Checksum"
msgstr ""
-#: part/models.py:2398
+#: part/models.py:2336
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2402 templates/js/translated/bom.js:315
+#: part/models.py:2340 templates/js/translated/bom.js:315
#: templates/js/translated/bom.js:322
#: templates/js/translated/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2403
+#: part/models.py:2341
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2408 templates/js/translated/bom.js:307
+#: part/models.py:2346 templates/js/translated/bom.js:307
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2347
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2494 stock/models.py:335
+#: part/models.py:2432 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2503 part/models.py:2505
+#: part/models.py:2441 part/models.py:2443
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2508
+#: part/models.py:2446
msgid "BOM Item"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2565
msgid "Part 1"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Part 2"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2569
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2663
+#: part/models.py:2601
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4374,7 +4337,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:56 part/views.py:1586
+#: part/templates/part/bom.html:56 part/views.py:1220
msgid "Export Bill of Materials"
msgstr ""
@@ -4507,9 +4470,11 @@ msgstr ""
msgid "Create Part Category"
msgstr "选择分类"
-#: part/templates/part/category.html:280 stock/views.py:959
-msgid "Create new Stock Location"
-msgstr ""
+#: part/templates/part/category.html:279
+#, fuzzy
+#| msgid "Select Category"
+msgid "Create Part"
+msgstr "选择分类"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4551,7 +4516,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 part/views.py:327
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:214
msgid "Duplicate Part"
msgstr ""
@@ -4674,38 +4639,38 @@ msgstr ""
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:588
+#: part/templates/part/detail.html:589
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:606
+#: part/templates/part/detail.html:607
msgid "Edit Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:618
+#: part/templates/part/detail.html:619
msgid "Delete Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:669
+#: part/templates/part/detail.html:670
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:902
+#: part/templates/part/detail.html:903
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:914
+#: part/templates/part/detail.html:915
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:926
+#: part/templates/part/detail.html:927
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1015
+#: part/templates/part/detail.html:1016
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4768,8 +4733,8 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:53 templates/js/translated/company.js:416
-#: templates/js/translated/company.js:666 templates/js/translated/part.js:203
-#: templates/js/translated/part.js:280
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:294
+#: templates/js/translated/part.js:371
msgid "Inactive"
msgstr ""
@@ -4855,8 +4820,8 @@ msgstr ""
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:202 templates/js/translated/part.js:532
-#: templates/js/translated/part.js:705
+#: part/templates/part/part_base.html:202 templates/js/translated/part.js:623
+#: templates/js/translated/part.js:796
msgid "Building"
msgstr ""
@@ -4874,13 +4839,13 @@ msgstr ""
msgid "No matching images found"
msgstr "未找到指定操作"
-#: part/templates/part/part_base.html:511
-#: part/templates/part/part_base.html:536
+#: part/templates/part/part_base.html:506
+#: part/templates/part/part_base.html:531
msgid "Hide Part Details"
msgstr ""
-#: part/templates/part/part_base.html:516
-#: part/templates/part/part_base.html:542
+#: part/templates/part/part_base.html:511
+#: part/templates/part/part_base.html:537
msgid "Show Part Details"
msgstr ""
@@ -5017,7 +4982,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:197 part/views.py:2159
+#: part/templates/part/prices.html:197 part/views.py:1793
msgid "Add Internal Price Break"
msgstr ""
@@ -5038,7 +5003,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:522 templates/js/translated/part.js:709
+#: templates/js/translated/part.js:613 templates/js/translated/part.js:800
msgid "No Stock"
msgstr ""
@@ -5059,148 +5024,128 @@ msgstr ""
msgid "Unknown database"
msgstr ""
-#: part/views.py:96
+#: part/views.py:94
msgid "Add Related Part"
msgstr ""
-#: part/views.py:151
+#: part/views.py:149
msgid "Delete Related Part"
msgstr ""
-#: part/views.py:162
+#: part/views.py:160
msgid "Set Part Category"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:247
-msgid "Create Variant"
-msgstr ""
-
-#: part/views.py:332
-msgid "Copied part"
-msgstr ""
-
-#: part/views.py:386 part/views.py:528
-msgid "Possible matches exist - confirm creation of new part"
-msgstr ""
-
-#: part/views.py:451
-msgid "Create New Part"
-msgstr ""
-
-#: part/views.py:456
-msgid "Created new part"
-msgstr ""
-
-#: part/views.py:636
+#: part/views.py:270
msgid "Match References"
msgstr ""
-#: part/views.py:892
+#: part/views.py:526
msgid "None"
msgstr ""
-#: part/views.py:951
+#: part/views.py:585
msgid "Part QR Code"
msgstr ""
-#: part/views.py:1053
+#: part/views.py:687
msgid "Select Part Image"
msgstr ""
-#: part/views.py:1079
+#: part/views.py:713
msgid "Updated part image"
msgstr ""
-#: part/views.py:1082
+#: part/views.py:716
msgid "Part image not found"
msgstr ""
-#: part/views.py:1094
+#: part/views.py:728
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:1124
+#: part/views.py:758
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:1145
+#: part/views.py:779
msgid "Validate BOM"
msgstr ""
-#: part/views.py:1166
+#: part/views.py:800
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:1177
+#: part/views.py:811
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:1250
+#: part/views.py:884
msgid "Match Parts"
msgstr ""
-#: part/views.py:1638
+#: part/views.py:1272
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1645
+#: part/views.py:1279
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1654
+#: part/views.py:1288
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1795
+#: part/views.py:1429
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1805
+#: part/views.py:1439
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1812
+#: part/views.py:1446
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1860 templates/js/translated/part.js:41
+#: part/views.py:1494 templates/js/translated/part.js:169
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1898
+#: part/views.py:1532
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1904
+#: part/views.py:1538
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1913
+#: part/views.py:1547
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2014
+#: part/views.py:1648
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2070
+#: part/views.py:1704
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2092
+#: part/views.py:1726
msgid "Added new price break"
msgstr ""
-#: part/views.py:2168
+#: part/views.py:1802
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:2176
+#: part/views.py:1810
msgid "Delete Internal Price Break"
msgstr ""
@@ -6091,6 +6036,10 @@ msgstr ""
msgid "Edit Stock Item"
msgstr ""
+#: stock/views.py:959
+msgid "Create new Stock Location"
+msgstr ""
+
#: stock/views.py:1050
msgid "Serialize Stock"
msgstr ""
@@ -6854,8 +6803,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:840 templates/js/translated/part.js:610
-#: templates/js/translated/part.js:855 templates/js/translated/stock.js:871
+#: templates/js/translated/build.js:840 templates/js/translated/part.js:701
+#: templates/js/translated/part.js:946 templates/js/translated/stock.js:871
#: templates/js/translated/stock.js:1324
msgid "Select"
msgstr ""
@@ -6868,10 +6817,6 @@ msgstr ""
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:930
-msgid "Resposible"
-msgstr ""
-
#: templates/js/translated/build.js:939
msgid "No information"
msgstr ""
@@ -6937,34 +6882,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:408
-#: templates/js/translated/company.js:658 templates/js/translated/part.js:187
-#: templates/js/translated/part.js:272
+#: templates/js/translated/company.js:658 templates/js/translated/part.js:278
+#: templates/js/translated/part.js:363
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:412
-#: templates/js/translated/company.js:662 templates/js/translated/part.js:191
-#: templates/js/translated/part.js:276
+#: templates/js/translated/company.js:662 templates/js/translated/part.js:282
+#: templates/js/translated/part.js:367
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:536 templates/js/translated/part.js:361
+#: templates/js/translated/company.js:536 templates/js/translated/part.js:452
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:572 templates/js/translated/part.js:402
+#: templates/js/translated/company.js:572 templates/js/translated/part.js:493
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:573 templates/js/translated/part.js:403
+#: templates/js/translated/company.js:573 templates/js/translated/part.js:494
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:592 templates/js/translated/part.js:420
+#: templates/js/translated/company.js:592 templates/js/translated/part.js:511
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:603 templates/js/translated/part.js:432
+#: templates/js/translated/company.js:603 templates/js/translated/part.js:523
msgid "Delete Parameter"
msgstr ""
@@ -7004,37 +6949,37 @@ msgstr ""
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:283 templates/js/translated/forms.js:296
-#: templates/js/translated/forms.js:308 templates/js/translated/forms.js:320
+#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302
+#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:284
+#: templates/js/translated/forms.js:290
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:297
+#: templates/js/translated/forms.js:303
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:309
+#: templates/js/translated/forms.js:315
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:321
+#: templates/js/translated/forms.js:327
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:817 templates/modals.html:21
+#: templates/js/translated/forms.js:841 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1184
+#: templates/js/translated/forms.js:1208
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1337
+#: templates/js/translated/forms.js:1373
msgid "Clear input"
msgstr ""
@@ -7202,99 +7147,139 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/part.js:20
-msgid "Parent part category"
+#: templates/js/translated/part.js:43
+msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:56
-msgid "New Category"
+#: templates/js/translated/part.js:86
+msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
-msgid "Create New Part Category"
+#: templates/js/translated/part.js:92
+msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:65
-msgid "New Parent"
+#: templates/js/translated/part.js:93
+msgid "Initialize part stock with specified quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:99
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:100
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:110
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:121
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:122
+msgid "Copy image from original part"
msgstr ""
#: templates/js/translated/part.js:128
+msgid "Copy BOM"
+msgstr ""
+
+#: templates/js/translated/part.js:129
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:135
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:136
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:148
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:186
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:179 templates/js/translated/part.js:264
+#: templates/js/translated/part.js:270 templates/js/translated/part.js:355
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:183 templates/js/translated/part.js:268
+#: templates/js/translated/part.js:274 templates/js/translated/part.js:359
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:286
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:199
+#: templates/js/translated/part.js:290
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:313
+#: templates/js/translated/part.js:404
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:500 templates/js/translated/part.js:739
+#: templates/js/translated/part.js:591 templates/js/translated/part.js:830
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:678
+#: templates/js/translated/part.js:769
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:696
+#: templates/js/translated/part.js:787
#: templates/js/translated/table_filters.js:337
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:880 templates/js/translated/stock.js:1348
+#: templates/js/translated/part.js:971 templates/js/translated/stock.js:1348
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:923
+#: templates/js/translated/part.js:1014
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:974 templates/js/translated/stock.js:431
+#: templates/js/translated/part.js:1065 templates/js/translated/stock.js:431
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:975 templates/js/translated/stock.js:432
+#: templates/js/translated/part.js:1066 templates/js/translated/stock.js:432
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:981
+#: templates/js/translated/part.js:1072
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1006
+#: templates/js/translated/part.js:1097
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1059
+#: templates/js/translated/part.js:1150
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1060
+#: templates/js/translated/part.js:1151
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1160
+#: templates/js/translated/part.js:1251
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1179
+#: templates/js/translated/part.js:1270
msgid "Single Price Difference"
msgstr ""