diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index d6248b6a68..bad407c6e7 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -36,7 +36,7 @@ msgstr "Datum eingeben"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "Bestätigen"
@@ -106,7 +106,7 @@ msgstr "Keine Seriennummern gefunden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "Anhang"
@@ -122,7 +122,7 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "Benutzer"
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr "Ungültige Auswahl"
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "Name"
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -461,11 +461,11 @@ msgstr "geplantes Bestelldatum"
msgid "Target Date"
msgstr "Zieldatum"
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr "Bauabbruch bestätigen"
msgid "Select quantity of stock to allocate"
msgstr "Menge der BestandsObjekte für Zuordnung auswählen"
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr "Bauauftrag"
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr "Bauauftragsreferenz"
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
msgid "Part"
msgstr "Teil"
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden BestandsObjekt"
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen BestandsObjekte"
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr "Link zu einer externen URL"
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein"
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist"
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr "Zu viele BestandsObjekt zugewiesen"
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
msgid "Stock Item"
msgstr "BestandsObjekt"
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr "Quell-BestandsObjekt"
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr "Ziel-BestandsObjekt"
@@ -882,7 +882,7 @@ msgstr "Ziel-BestandsObjekt"
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr "Seriennummer"
@@ -1609,7 +1609,7 @@ msgstr "Aktuelle Teile-Stände"
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr "Baugruppe"
@@ -1628,7 +1628,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:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr "Komponente"
@@ -1636,7 +1636,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:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr "Kaufbar"
@@ -1644,7 +1644,7 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr "Verkäuflich"
@@ -1652,7 +1652,7 @@ msgstr "Verkäuflich"
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr "Nachverfolgbar"
@@ -1661,7 +1661,7 @@ msgstr "Nachverfolgbar"
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Virtuell"
@@ -2008,7 +2008,7 @@ 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:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2019,7 +2019,7 @@ msgstr "Link"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr "Bild"
@@ -2056,7 +2056,7 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr "Basisteil"
@@ -2110,7 +2110,7 @@ msgstr "Parametername"
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2120,7 +2120,7 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr "Einheiten"
@@ -2166,21 +2166,21 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr "Verpackungen"
@@ -2189,7 +2189,7 @@ msgstr "Verpackungen"
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr "Vielfache"
@@ -2247,8 +2247,8 @@ msgid "Phone"
msgstr "Telefon"
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2521,7 +2521,7 @@ msgid "Stock Items"
msgstr "Teilbestand"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2803,7 +2803,7 @@ msgstr "Geplantes Lieferdatum für Auftrag."
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -2890,7 +2890,7 @@ msgstr "Empfangen"
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr "Preis"
@@ -3269,7 +3269,7 @@ 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:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3589,7 +3589,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:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr "Standard-Lagerort"
@@ -3654,7 +3654,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:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -3730,7 +3730,7 @@ msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr "Untergeordnetes Teil"
@@ -3738,370 +3738,376 @@ msgstr "Untergeordnetes Teil"
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+#, fuzzy
+#| msgid "Invalid character in part name"
+msgid "Invalid choice for parent part"
+msgstr "Ungültiger Buchstabe im Teilenamen"
+
+#: part/models.py:495 part/models.py:507
#, 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:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr "Revision"
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr "Minimaler Lagerbestand"
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr "Aktiv"
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:881
+#: part/models.py:898
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:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2108
+#: part/models.py:2125
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:2125
+#: part/models.py:2142
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:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2164
+#: part/models.py:2181
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:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2170
+#: part/models.py:2187
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:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr "Wert"
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2369
+#: part/models.py:2386
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:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2375
+#: part/models.py:2392
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:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2629
+#: part/models.py:2646
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?"
@@ -5090,12 +5096,12 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr "Ergebnis"
@@ -5154,7 +5160,7 @@ msgstr "Gültiger Standort muss angegeben werden"
msgid "Moved {n} parts to {loc}"
msgstr "{n} Teile nach {loc} bewegt"
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -5211,187 +5217,187 @@ msgstr "nicht mehr verbauen bestätigen"
msgid "Confirm removal of installed stock items"
msgstr "Entfernen der verbauten BestandsObjekt bestätigen"
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits"
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr "Teil muss eine Referenz haben wenn is_building wahr ist"
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr "Eltern-BestandsObjekt"
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen"
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in"
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr "Losnummer für dieses BestandsObjekt"
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr "Bauauftrag für dieses BestandsObjekt"
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr "Bestellung für dieses BestandsObjekt"
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht"
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr "BestandsObjekt-Notizen"
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr "Test Notizen"
@@ -6690,15 +6696,15 @@ msgstr "Löschvorgang nicht erlaubt"
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr "Suche"
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr "Eingabe leeren"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index e035cc58fe..dca0075f6c 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+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:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr ""
@@ -107,7 +107,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr ""
@@ -123,7 +123,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -133,12 +133,12 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -146,12 +146,12 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -167,15 +167,15 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -462,11 +462,11 @@ msgstr ""
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -480,7 +480,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -589,18 +589,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr ""
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -611,13 +611,13 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -625,30 +625,30 @@ msgstr ""
msgid "Reference"
msgstr ""
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -665,116 +665,116 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr ""
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr ""
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr ""
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr ""
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -783,12 +783,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -796,63 +796,63 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -862,19 +862,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -883,7 +883,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr ""
@@ -1610,7 +1610,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1620,7 +1620,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr ""
@@ -1629,7 +1629,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr ""
@@ -1637,7 +1637,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr ""
@@ -1645,7 +1645,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1653,7 +1653,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr ""
@@ -1662,7 +1662,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2007,7 +2007,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2018,7 +2018,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2055,7 +2055,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2109,7 +2109,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2119,7 +2119,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2165,21 +2165,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2188,7 +2188,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2246,8 +2246,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2520,7 +2520,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2802,7 +2802,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2889,7 +2889,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3268,7 +3268,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3588,7 +3588,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3653,7 +3653,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3729,7 +3729,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3737,370 +3737,374 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr ""
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5089,12 +5093,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5153,7 +5157,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5210,187 +5214,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6683,15 +6687,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 9c524052b6..db5a39fca1 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -36,7 +36,7 @@ msgstr "Ingrese la fecha"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "Confirmar"
@@ -106,7 +106,7 @@ msgstr "Numeros de serie no encontrados"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr ""
@@ -122,7 +122,7 @@ msgstr "Comentario"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "Usuario"
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr ""
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "Nombre"
msgid "Description"
msgstr "Descripción"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -461,11 +461,11 @@ msgstr ""
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr ""
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr ""
msgid "Reference"
msgstr "Referencia"
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr ""
msgid "Part"
msgstr "Parte"
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr ""
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr "Elementos completados"
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr ""
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr ""
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr ""
msgid "Notes"
msgstr "Notas"
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr "Número de serie"
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr ""
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr ""
@@ -1636,7 +1636,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr ""
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr ""
@@ -1661,7 +1661,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr "Teléfono"
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,374 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr ""
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5092,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5156,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5213,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6682,15 +6686,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index f5cab5ab36..a4c2d9aa42 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -36,7 +36,7 @@ msgstr "Entrer la date"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "Confirmer"
@@ -106,7 +106,7 @@ msgstr "Aucun numéro de série trouvé"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "Pièce jointe"
@@ -122,7 +122,7 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "Utilisateur"
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr ""
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "Nom"
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -461,11 +461,11 @@ msgstr ""
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr ""
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr ""
msgid "Reference"
msgstr "Référence"
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr ""
msgid "Part"
msgstr "Pièce"
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr ""
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr ""
msgid "Notes"
msgstr "Notes"
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable"
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'"
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr ""
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr ""
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr ""
@@ -1636,7 +1636,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr ""
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr ""
@@ -1661,7 +1661,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,376 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+#, fuzzy
+#| msgid "Invalid character in part name"
+msgid "Invalid choice for parent part"
+msgstr "Caractère invalide dans le nom de la pièce"
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr "IPN"
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5094,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5158,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5215,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6682,15 +6688,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index dd8c6243c2..a23f1c031b 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -36,7 +36,7 @@ msgstr ""
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr ""
@@ -106,7 +106,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr ""
@@ -122,7 +122,7 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr ""
msgid "Name"
msgstr ""
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr ""
msgid "Description"
msgstr ""
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -461,11 +461,11 @@ msgstr ""
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr ""
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr ""
msgid "Reference"
msgstr ""
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr ""
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr ""
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr ""
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr ""
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr ""
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr ""
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr ""
@@ -1636,7 +1636,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr ""
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr ""
@@ -1661,7 +1661,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,374 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr ""
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5092,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5156,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5213,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6682,15 +6686,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 82d479f5dc..69833b5503 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -36,7 +36,7 @@ msgstr "日付を入力する"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "確認"
@@ -106,7 +106,7 @@ msgstr "シリアル番号が見つかりません"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "添付ファイル"
@@ -122,7 +122,7 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "ユーザー"
msgid "upload date"
msgstr "アップロード日時"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr "無効な選択です"
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "お名前"
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -461,11 +461,11 @@ msgstr ""
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr ""
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr ""
msgid "Reference"
msgstr ""
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr ""
msgid "Part"
msgstr "パーツ"
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr ""
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr ""
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr ""
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr ""
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr "パーツを割り当てるためにビルドする"
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr ""
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr "アセンブリ"
@@ -1628,7 +1628,7 @@ msgstr "アセンブリ"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr "コンポーネント"
@@ -1636,7 +1636,7 @@ msgstr "コンポーネント"
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr "購入可能"
@@ -1644,7 +1644,7 @@ msgstr "購入可能"
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr "追跡可能"
@@ -1661,7 +1661,7 @@ msgstr "追跡可能"
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ 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:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,376 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+#, fuzzy
+#| msgid "Invalid choice"
+msgid "Invalid choice for parent part"
+msgstr "無効な選択です"
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr ""
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5094,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5158,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5215,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6682,15 +6688,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index eed4e6d592..92d93672bd 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -36,7 +36,7 @@ msgstr "Wprowadź dane"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "Potwierdź"
@@ -106,7 +106,7 @@ msgstr "Nie znaleziono numerów seryjnych"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "Załącznik"
@@ -122,7 +122,7 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "Użytkownik"
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr "Błędny wybór"
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "Nazwa"
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -461,11 +461,11 @@ msgstr ""
msgid "Target Date"
msgstr "Data docelowa"
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr "Wybierz ilość zapasów do rezerwacji"
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr "Zlecenie Budowy"
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr "Odwołanie do zamówienia wykonania"
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
msgid "Part"
msgstr "Część"
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr "Link do zewnętrznego adresu URL"
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Przydzielona ilość ({n}) nie może przekraczać dostępnej ilości ({q})"
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr ""
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
@@ -882,7 +882,7 @@ msgstr "Docelowa lokalizacja magazynowa przedmiotu"
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr "Numer Seryjny"
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr "Złożenie"
@@ -1628,7 +1628,7 @@ msgstr "Złożenie"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr "Komponent"
@@ -1636,7 +1636,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr "Możliwość zakupu"
@@ -1644,7 +1644,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:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1652,7 +1652,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:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr "Możliwość śledzenia"
@@ -1661,7 +1661,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:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Wirtualny"
@@ -2006,7 +2006,7 @@ 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:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,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:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr "Obraz"
@@ -2054,7 +2054,7 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr "Część bazowa"
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr "Jednostki"
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr "Opakowanie"
@@ -2187,7 +2187,7 @@ msgstr "Opakowanie"
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr "wielokrotność"
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr "Telefon"
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -2888,7 +2888,7 @@ msgstr "Odebrane"
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr "Część nadrzędna"
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr "Podczęść"
@@ -3736,370 +3736,376 @@ msgstr "Podczęść"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+#, fuzzy
+#| msgid "Invalid character in part name"
+msgid "Invalid choice for parent part"
+msgstr "Błędny znak w nazwie elementu"
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr "Nazwa części"
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr "IPN"
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr "Czy ta część może być zbudowana z innych części?"
-#: part/models.py:855
+#: part/models.py:872
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:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr "Aktywny"
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr "Dane"
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5094,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr "Wynik"
@@ -5152,7 +5158,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr "Data ważności"
@@ -5209,187 +5215,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6684,15 +6690,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 8982f1e8d2..a42fade434 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -36,7 +36,7 @@ msgstr "Введите дату"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "Подтвердить"
@@ -106,7 +106,7 @@ msgstr "Серийных номеров не найдено"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "Вложения"
@@ -122,7 +122,7 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "Пользователь"
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr ""
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "Название"
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -461,11 +461,11 @@ msgstr "Срок выполнения заказа"
msgid "Target Date"
msgstr "Целевая дата"
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr "Подтвердите отмену сборки"
msgid "Select quantity of stock to allocate"
msgstr "Выберите количество запасов для распределения"
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr "Порядок сборки"
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr "Ссылка на заказ"
msgid "Reference"
msgstr ""
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr ""
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr ""
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr ""
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr ""
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr ""
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr ""
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr ""
@@ -1636,7 +1636,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr ""
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr ""
@@ -1661,7 +1661,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,376 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+#, fuzzy
+#| msgid "Invalid character in part name"
+msgid "Invalid choice for parent part"
+msgstr "Неверный символ в названии части"
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr ""
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5094,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5158,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5215,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6682,15 +6688,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index df8c95e5da..8920221bb2 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
@@ -36,7 +36,7 @@ msgstr "Tarih giriniz"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "Onay"
@@ -106,7 +106,7 @@ msgstr "Seri numarası bulunamadı"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "Ek"
@@ -122,7 +122,7 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "Kullanıcı"
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr ""
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "Adı"
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -461,11 +461,11 @@ msgstr "Emir hedef tarihi"
msgid "Target Date"
msgstr "Hedeflenen tarih"
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr "Yapım işi iptalini onayla"
msgid "Select quantity of stock to allocate"
msgstr "Tahsis edilecek stok miktarını seçiniz"
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr "Yapım İşi Emri"
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr "Yapım İşi Emri Referansı"
msgid "Reference"
msgstr "Referans"
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
msgid "Part"
msgstr "Parça"
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr "Harici URL'ye bağlantı"
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr "Yapım işi ögesi; yapım işi, stok kalemi ve kurulacak yer için benzersiz olmalıdır"
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir"
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli"
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı"
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr "Yapım işi için tahsis edilen parçalar"
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
@@ -882,7 +882,7 @@ msgstr "Hedef stok kalemi"
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr "Seri Numara"
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr "Montaj"
@@ -1628,7 +1628,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:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr "Bileşen"
@@ -1636,7 +1636,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:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr "Satın Alınabilir"
@@ -1644,7 +1644,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:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr "Satılabilir"
@@ -1652,7 +1652,7 @@ msgstr "Satılabilir"
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr "Takip Edilebilir"
@@ -1661,7 +1661,7 @@ msgstr "Takip Edilebilir"
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Sanal"
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr "Stok Kalemleri"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -3652,7 +3652,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:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
msgid "Add parameter template to all categories"
msgstr "Parametre şablonunu tüm kategorilere ekle"
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,376 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+#, fuzzy
+#| msgid "Invalid character in part name"
+msgid "Invalid choice for parent part"
+msgstr "Parça adında geçersiz karakter"
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:718
+#: part/models.py:735
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:719
+#: part/models.py:736
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr "DPN"
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:855
+#: part/models.py:872
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:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
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:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
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:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2375
+#: part/models.py:2392
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:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5094,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5158,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5215,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla"
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr "Bu stok kalemi için tedarikçi parçası seçin"
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6684,15 +6690,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 95a712fb89..a90090ef48 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-07-21 05:27+0000\n"
+"POT-Creation-Date: 2021-07-21 11:51+0000\n"
"PO-Revision-Date: 2021-07-19 22:24\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -36,7 +36,7 @@ msgstr "输入日期"
#: InvenTree/forms.py:112 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:109 templates/js/forms.js:520
+#: order/forms.py:74 part/forms.py:109 templates/js/forms.js:526
msgid "Confirm"
msgstr "确认"
@@ -106,7 +106,7 @@ msgstr "未找到序列号"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:61 stock/models.py:1804
+#: InvenTree/models.py:61 stock/models.py:1815
msgid "Attachment"
msgstr "附件"
@@ -122,7 +122,7 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2063
+#: InvenTree/models.py:70 InvenTree/models.py:71 part/models.py:2080
#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/stock.js:1538
msgid "User"
@@ -132,12 +132,12 @@ msgstr "用户"
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:102
+#: InvenTree/models.py:113
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 company/models.py:412
-#: label/models.py:112 part/models.py:701 part/models.py:2212
+#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412
+#: label/models.py:112 part/models.py:718 part/models.py:2229
#: report/models.py:181 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/company.js:545
#: templates/js/part.js:206 templates/js/part.js:339 templates/js/part.js:831
@@ -145,12 +145,12 @@ msgstr ""
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:125 build/models.py:179
+#: InvenTree/models.py:136 build/models.py:187
#: build/templates/build/detail.html:24 company/models.py:351
#: 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:724 part/templates/part/set_category.html:14
+#: part/models.py:741 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
#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
@@ -166,15 +166,15 @@ msgstr "名称"
msgid "Description"
msgstr ""
-#: InvenTree/models.py:126
+#: InvenTree/models.py:137
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:134
+#: InvenTree/models.py:145
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:52 part/models.py:2448
+#: InvenTree/serializers.py:52 part/models.py:2465
msgid "Must be a valid number"
msgstr ""
@@ -461,11 +461,11 @@ msgstr ""
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:269
+#: build/forms.py:43 build/models.py:277
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1394
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
@@ -479,7 +479,7 @@ msgstr ""
#: 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:323
-#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2350
+#: part/forms.py:353 part/forms.py:369 part/forms.py:385 part/models.py:2367
#: part/templates/part/bom_upload/match_parts.html:31
#: part/templates/part/detail.html:939 part/templates/part/detail.html:1025
#: part/templates/part/part_pricing.html:16
@@ -588,18 +588,18 @@ msgstr ""
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:105
+#: build/models.py:113
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:109 build/templates/build/build_base.html:9
+#: build/models.py:117 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
#: templates/js/build.js:233
msgid "Build Order"
msgstr ""
-#: build/models.py:110 build/templates/build/index.html:8
+#: build/models.py:118 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
@@ -610,13 +610,13 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:170
+#: build/models.py:178
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:171 order/models.py:246 order/models.py:533
+#: 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:2359
+#: order/templates/order/sales_order_detail.html:359 part/models.py:2376
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -624,30 +624,30 @@ msgstr ""
msgid "Reference"
msgstr ""
-#: build/models.py:182
+#: build/models.py:190
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:191 build/templates/build/build_base.html:163
+#: build/models.py:199 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:192
+#: build/models.py:200
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:197 build/templates/build/auto_allocate.html:16
+#: build/models.py:205 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:128
#: build/templates/build/detail.html:29 company/models.py:654
#: order/models.py:766 order/models.py:825
#: 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:346
-#: part/models.py:2008 part/models.py:2024 part/models.py:2043
-#: part/models.py:2061 part/models.py:2140 part/models.py:2244
-#: part/models.py:2334 part/templates/part/detail.html:199
+#: order/templates/order/sales_order_detail.html:344 part/models.py:347
+#: part/models.py:2025 part/models.py:2041 part/models.py:2060
+#: part/models.py:2078 part/models.py:2157 part/models.py:2261
+#: part/models.py:2351 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
@@ -664,116 +664,116 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/models.py:205
+#: build/models.py:213
msgid "Select part to build"
msgstr ""
-#: build/models.py:210
+#: build/models.py:218
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:214
+#: build/models.py:222
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:219
+#: build/models.py:227
msgid "Source Location"
msgstr ""
-#: build/models.py:223
+#: build/models.py:231
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:228
+#: build/models.py:236
msgid "Destination Location"
msgstr ""
-#: build/models.py:232
+#: build/models.py:240
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:236
+#: build/models.py:244
msgid "Build Quantity"
msgstr ""
-#: build/models.py:239
+#: build/models.py:247
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:243
+#: build/models.py:251
msgid "Completed items"
msgstr ""
-#: build/models.py:245
+#: build/models.py:253
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:249 part/templates/part/part_base.html:225
+#: build/models.py:257 part/templates/part/part_base.html:225
msgid "Build Status"
msgstr ""
-#: build/models.py:253
+#: build/models.py:261
msgid "Build status code"
msgstr ""
-#: build/models.py:257 stock/models.py:496
+#: build/models.py:265 stock/models.py:507
msgid "Batch Code"
msgstr ""
-#: build/models.py:261
+#: build/models.py:269
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:264 order/models.py:162 part/models.py:896
+#: build/models.py:272 order/models.py:162 part/models.py:913
#: part/templates/part/part_base.html:143 templates/js/order.js:362
msgid "Creation Date"
msgstr ""
-#: build/models.py:268 order/models.py:555
+#: build/models.py:276 order/models.py:555
msgid "Target completion date"
msgstr ""
-#: build/models.py:272 order/models.py:288 templates/js/build.js:950
+#: build/models.py:280 order/models.py:288 templates/js/build.js:950
msgid "Completion Date"
msgstr ""
-#: build/models.py:278
+#: build/models.py:286
msgid "completed by"
msgstr ""
-#: build/models.py:286 templates/js/build.js:915
+#: build/models.py:294 templates/js/build.js:915
msgid "Issued by"
msgstr ""
-#: build/models.py:287
+#: build/models.py:295
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:295 build/templates/build/build_base.html:184
+#: 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:900
+#: order/templates/order/sales_order_base.html:140 part/models.py:917
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
msgstr ""
-#: build/models.py:296
+#: build/models.py:304
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:301 build/templates/build/detail.html:94
+#: build/models.py:309 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:137 stock/models.py:490
+#: part/templates/part/part_base.html:137 stock/models.py:501
#: stock/templates/stock/item_base.html:357
msgid "External Link"
msgstr ""
-#: build/models.py:302 part/models.py:758 stock/models.py:492
+#: build/models.py:310 part/models.py:775 stock/models.py:503
msgid "Link to external URL"
msgstr ""
-#: build/models.py:306 build/templates/build/navbar.html:52
+#: build/models.py:314 build/templates/build/navbar.html:52
#: company/models.py:139 company/models.py:526
#: company/templates/company/navbar.html:63
#: company/templates/company/navbar.html:66 order/models.py:180
@@ -782,12 +782,12 @@ 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:885
+#: order/templates/order/so_navbar.html:36 part/models.py:902
#: 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
-#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:562
-#: stock/models.py:1704 stock/models.py:1810
+#: stock/forms.py:139 stock/forms.py:256 stock/forms.py:288 stock/models.py:573
+#: stock/models.py:1715 stock/models.py:1821
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:349 templates/js/company.js:746
#: templates/js/stock.js:258 templates/js/stock.js:499
@@ -795,63 +795,63 @@ msgstr ""
msgid "Notes"
msgstr ""
-#: build/models.py:307
+#: build/models.py:315
msgid "Extra build notes"
msgstr ""
-#: build/models.py:784
+#: build/models.py:792
msgid "No build output specified"
msgstr ""
-#: build/models.py:787
+#: build/models.py:795
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:790
+#: build/models.py:798
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1200
+#: build/models.py:1208
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1225
+#: build/models.py:1233
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1237
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1236 order/models.py:926
+#: build/models.py:1244 order/models.py:926
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1240 order/models.py:929
+#: build/models.py:1248 order/models.py:929
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1244
+#: build/models.py:1252
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1304
+#: build/models.py:1312
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1364 stock/templates/stock/item_base.html:329
+#: build/models.py:1372 stock/templates/stock/item_base.html:329
#: templates/InvenTree/search.html:183 templates/js/build.js:846
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1365
+#: build/models.py:1373
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1381 stock/templates/stock/item_base.html:8
+#: build/models.py:1389 stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:351
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:244
@@ -861,19 +861,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1382
+#: build/models.py:1390
msgid "Source stock item"
msgstr ""
-#: build/models.py:1395
+#: build/models.py:1403
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1411
msgid "Install into"
msgstr ""
-#: build/models.py:1404
+#: build/models.py:1412
msgid "Destination stock item"
msgstr ""
@@ -882,7 +882,7 @@ msgstr ""
#: order/templates/order/sales_order_detail.html:205
#: order/templates/order/sales_order_detail.html:290
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:484 stock/templates/stock/item_base.html:249
+#: stock/models.py:495 stock/templates/stock/item_base.html:249
#: templates/js/build.js:604 templates/js/model_renderers.js:54
msgid "Serial Number"
msgstr ""
@@ -1609,7 +1609,7 @@ msgstr ""
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:158 part/models.py:2246 report/models.py:187
+#: common/models.py:158 part/models.py:2263 report/models.py:187
#: stock/forms.py:225 templates/js/table_filters.js:25
#: templates/js/table_filters.js:324
msgid "Template"
@@ -1619,7 +1619,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:165 part/models.py:848 templates/js/table_filters.js:132
+#: common/models.py:165 part/models.py:865 templates/js/table_filters.js:132
#: templates/js/table_filters.js:336
msgid "Assembly"
msgstr ""
@@ -1628,7 +1628,7 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:172 part/models.py:854 templates/js/table_filters.js:340
+#: common/models.py:172 part/models.py:871 templates/js/table_filters.js:340
msgid "Component"
msgstr ""
@@ -1636,7 +1636,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:179 part/models.py:865
+#: common/models.py:179 part/models.py:882
msgid "Purchaseable"
msgstr ""
@@ -1644,7 +1644,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:186 part/models.py:870 templates/js/table_filters.js:348
+#: common/models.py:186 part/models.py:887 templates/js/table_filters.js:348
msgid "Salable"
msgstr ""
@@ -1652,7 +1652,7 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:193 part/models.py:860 templates/js/table_filters.js:33
+#: common/models.py:193 part/models.py:877 templates/js/table_filters.js:33
#: templates/js/table_filters.js:352
msgid "Trackable"
msgstr ""
@@ -1661,7 +1661,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:200 part/models.py:880 templates/js/table_filters.js:29
+#: common/models.py:200 part/models.py:897 templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
@@ -2006,7 +2006,7 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:128 company/models.py:345 company/models.py:513
-#: order/models.py:160 part/models.py:757
+#: order/models.py:160 part/models.py:774
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/company.js:448 templates/js/company.js:730
#: templates/js/part.js:687
@@ -2017,7 +2017,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:136 part/models.py:767
+#: company/models.py:136 part/models.py:784
msgid "Image"
msgstr ""
@@ -2054,7 +2054,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:317 company/models.py:484 stock/models.py:437
+#: company/models.py:317 company/models.py:484 stock/models.py:448
#: stock/templates/stock/item_base.html:235
msgid "Base Part"
msgstr ""
@@ -2108,7 +2108,7 @@ msgstr ""
#: company/models.py:419
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1797 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1808 templates/InvenTree/settings/header.html:8
#: templates/js/company.js:551 templates/js/part.js:348
#: templates/js/stock.js:495
msgid "Value"
@@ -2118,7 +2118,7 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:426 part/models.py:842 part/models.py:2214
+#: company/models.py:426 part/models.py:859 part/models.py:2231
#: templates/js/company.js:557 templates/js/part.js:354
msgid "Units"
msgstr ""
@@ -2164,21 +2164,21 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:525 company/templates/company/supplier_part.html:120
-#: part/models.py:2362 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2379 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:1635
+#: company/models.py:529 part/models.py:1652
msgid "base cost"
msgstr ""
-#: company/models.py:529 part/models.py:1635
+#: company/models.py:529 part/models.py:1652
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:531 company/templates/company/supplier_part.html:113
-#: stock/models.py:461 stock/templates/stock/item_base.html:322
+#: stock/models.py:472 stock/templates/stock/item_base.html:322
#: templates/js/company.js:751 templates/js/stock.js:1078
msgid "Packaging"
msgstr ""
@@ -2187,7 +2187,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:533 part/models.py:1637
+#: company/models.py:533 part/models.py:1654
msgid "multiple"
msgstr ""
@@ -2245,8 +2245,8 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:544
-#: order/templates/order/sales_order_base.html:94 stock/models.py:479
-#: stock/models.py:480 stock/templates/stock/item_base.html:274
+#: order/templates/order/sales_order_base.html:94 stock/models.py:490
+#: stock/models.py:491 stock/templates/stock/item_base.html:274
#: templates/js/company.js:245 templates/js/order.js:331
#: templates/js/stock.js:1456
msgid "Customer"
@@ -2519,7 +2519,7 @@ msgid "Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:446
+#: company/templates/company/supplier_part.html:24 stock/models.py:457
#: stock/templates/stock/item_base.html:386 templates/js/company.js:691
#: templates/js/stock.js:1050
msgid "Supplier Part"
@@ -2801,7 +2801,7 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:334 stock/models.py:1049
+#: order/models.py:313 stock/models.py:345 stock/models.py:1060
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2888,7 +2888,7 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:571
+#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582
#: stock/templates/stock/item_base.html:343 templates/js/stock.js:1073
msgid "Purchase Price"
msgstr ""
@@ -3267,7 +3267,7 @@ msgid "Receive outstanding parts for %(order)s - %(desc)s"
msgstr ""
#: order/templates/order/receive_parts.html:14 part/api.py:47
-#: part/models.py:347 part/templates/part/cat_link.html:7
+#: part/models.py:348 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
@@ -3587,7 +3587,7 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/bom.py:133 part/models.py:73 part/models.py:776
+#: part/bom.py:133 part/models.py:74 part/models.py:793
#: part/templates/part/category.html:75
msgid "Default Location"
msgstr ""
@@ -3652,7 +3652,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:97 part/models.py:2244
+#: part/forms.py:97 part/models.py:2261
msgid "Parent Part"
msgstr ""
@@ -3728,7 +3728,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:325 part/models.py:2343
+#: part/forms.py:325 part/models.py:2360
msgid "Sub part"
msgstr ""
@@ -3736,370 +3736,374 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:74
+#: part/models.py:75
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords"
msgstr ""
-#: part/models.py:77
+#: part/models.py:78
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:87 part/models.py:2290
+#: part/models.py:88 part/models.py:2307
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:88 part/templates/part/category.html:32
+#: part/models.py:89 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:478 part/models.py:490
+#: part/models.py:433
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:495 part/models.py:507
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:587
+#: part/models.py:604
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:591
+#: part/models.py:608
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:596
+#: part/models.py:613
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:675
+#: part/models.py:692
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:700
+#: part/models.py:717
msgid "Part name"
msgstr ""
-#: part/models.py:707
+#: part/models.py:724
msgid "Is Template"
msgstr ""
-#: part/models.py:708
+#: part/models.py:725
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:718
+#: part/models.py:735
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:719
+#: part/models.py:736
msgid "Variant Of"
msgstr ""
-#: part/models.py:725
+#: part/models.py:742
msgid "Part description"
msgstr ""
-#: part/models.py:730 part/templates/part/category.html:82
+#: part/models.py:747 part/templates/part/category.html:82
#: part/templates/part/part_base.html:130
msgid "Keywords"
msgstr ""
-#: part/models.py:731
+#: part/models.py:748
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:738 part/models.py:2289
+#: part/models.py:755 part/models.py:2306
#: part/templates/part/set_category.html:15 templates/js/part.js:641
msgid "Category"
msgstr ""
-#: part/models.py:739
+#: part/models.py:756
msgid "Part category"
msgstr ""
-#: part/models.py:744 templates/js/part.js:257 templates/js/part.js:485
+#: part/models.py:761 templates/js/part.js:257 templates/js/part.js:485
msgid "IPN"
msgstr ""
-#: part/models.py:745
+#: part/models.py:762
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:751
+#: part/models.py:768
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:752 report/models.py:200 templates/js/part.js:261
+#: part/models.py:769 report/models.py:200 templates/js/part.js:261
msgid "Revision"
msgstr ""
-#: part/models.py:774
+#: part/models.py:791
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:821
+#: part/models.py:838
msgid "Default Supplier"
msgstr ""
-#: part/models.py:822
+#: part/models.py:839
msgid "Default supplier part"
msgstr ""
-#: part/models.py:829
+#: part/models.py:846
msgid "Default Expiry"
msgstr ""
-#: part/models.py:830
+#: part/models.py:847
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:835
+#: part/models.py:852
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:836
+#: part/models.py:853
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:843
+#: part/models.py:860
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:849
+#: part/models.py:866
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:855
+#: part/models.py:872
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:861
+#: part/models.py:878
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:866
+#: part/models.py:883
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:871
+#: part/models.py:888
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:875 templates/js/table_filters.js:21
+#: part/models.py:892 templates/js/table_filters.js:21
#: templates/js/table_filters.js:69 templates/js/table_filters.js:250
#: templates/js/table_filters.js:319
msgid "Active"
msgstr ""
-#: part/models.py:876
+#: part/models.py:893
msgid "Is this part active?"
msgstr ""
-#: part/models.py:881
+#: part/models.py:898
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:886
+#: part/models.py:903
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "BOM checksum"
msgstr ""
-#: part/models.py:889
+#: part/models.py:906
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:892
+#: part/models.py:909
msgid "BOM checked by"
msgstr ""
-#: part/models.py:894
+#: part/models.py:911
msgid "BOM checked date"
msgstr ""
-#: part/models.py:898
+#: part/models.py:915
msgid "Creation User"
msgstr ""
-#: part/models.py:1637
+#: part/models.py:1654
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2108
+#: part/models.py:2125
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2125
+#: part/models.py:2142
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2145 templates/js/part.js:906 templates/js/stock.js:475
+#: part/models.py:2162 templates/js/part.js:906 templates/js/stock.js:475
msgid "Test Name"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2163
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2151
+#: part/models.py:2168
msgid "Test Description"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2169
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2157 templates/js/part.js:915
+#: part/models.py:2174 templates/js/part.js:915
#: templates/js/table_filters.js:236
msgid "Required"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2175
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2163 templates/js/part.js:923
+#: part/models.py:2180 templates/js/part.js:923
msgid "Requires Value"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2181
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2169 templates/js/part.js:930
+#: part/models.py:2186 templates/js/part.js:930
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2187
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2207
+#: part/models.py:2224
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2212
+#: part/models.py:2229
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2214
+#: part/models.py:2231
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2246 part/models.py:2295 part/models.py:2296
+#: part/models.py:2263 part/models.py:2312 part/models.py:2313
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Data"
msgstr ""
-#: part/models.py:2248
+#: part/models.py:2265
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2300 templates/InvenTree/settings/category.html:67
+#: part/models.py:2317 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2301
+#: part/models.py:2318
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2335
+#: part/models.py:2352
msgid "Select parent part"
msgstr ""
-#: part/models.py:2344
+#: part/models.py:2361
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2367
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2352 templates/js/bom.js:216 templates/js/bom.js:278
+#: part/models.py:2369 templates/js/bom.js:216 templates/js/bom.js:278
msgid "Optional"
msgstr ""
-#: part/models.py:2352
+#: part/models.py:2369
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2355
+#: part/models.py:2372
msgid "Overage"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2373
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2359
+#: part/models.py:2376
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2379
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "Checksum"
msgstr ""
-#: part/models.py:2364
+#: part/models.py:2381
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2368 templates/js/bom.js:295 templates/js/bom.js:302
+#: part/models.py:2385 templates/js/bom.js:295 templates/js/bom.js:302
#: templates/js/table_filters.js:55
msgid "Inherited"
msgstr ""
-#: part/models.py:2369
+#: part/models.py:2386
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2374 templates/js/bom.js:287
+#: part/models.py:2391 templates/js/bom.js:287
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2392
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2460 stock/models.py:324
+#: part/models.py:2477 stock/models.py:335
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2469 part/models.py:2471
+#: part/models.py:2486 part/models.py:2488
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2474
+#: part/models.py:2491
msgid "BOM Item"
msgstr ""
-#: part/models.py:2593
+#: part/models.py:2610
msgid "Part 1"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Part 2"
msgstr ""
-#: part/models.py:2597
+#: part/models.py:2614
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2629
+#: part/models.py:2646
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -5088,12 +5092,12 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1785
+#: stock/models.py:1796
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1791
+#: stock/models.py:1802
msgid "Result"
msgstr ""
@@ -5152,7 +5156,7 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:313 stock/models.py:539
+#: stock/forms.py:80 stock/forms.py:313 stock/models.py:550
#: stock/templates/stock/item_base.html:393 templates/js/stock.js:1018
msgid "Expiry Date"
msgstr ""
@@ -5209,187 +5213,187 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:576
+#: stock/models.py:57 stock/models.py:587
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:577
+#: stock/models.py:58 stock/models.py:588
msgid "Select Owner"
msgstr ""
-#: stock/models.py:305
+#: stock/models.py:316
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:341
+#: stock/models.py:352
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:351 stock/models.py:360
+#: stock/models.py:362 stock/models.py:371
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:352
+#: stock/models.py:363
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:385
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:380
+#: stock/models.py:391
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:387
+#: stock/models.py:398
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:429
+#: stock/models.py:440
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:449
msgid "Base part"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:458
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:452 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:466
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:462
+#: stock/models.py:473
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:467 stock/templates/stock/item_base.html:282
+#: stock/models.py:478 stock/templates/stock/item_base.html:282
msgid "Installed In"
msgstr ""
-#: stock/models.py:470
+#: stock/models.py:481
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:497
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:509
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:513
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:511
+#: stock/models.py:522
msgid "Source Build"
msgstr ""
-#: stock/models.py:513
+#: stock/models.py:524
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:524
+#: stock/models.py:535
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:527
+#: stock/models.py:538
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:544
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:551
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:553
+#: stock/models.py:564
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:563 stock/templates/stock/item.html:98
+#: stock/models.py:574 stock/templates/stock/item.html:98
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:583
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1040
+#: stock/models.py:1051
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1046
+#: stock/models.py:1057
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1052
+#: stock/models.py:1063
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1055
+#: stock/models.py:1066
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1058
+#: stock/models.py:1069
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1065
+#: stock/models.py:1076
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1223
+#: stock/models.py:1234
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1705
+#: stock/models.py:1716
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1762
+#: stock/models.py:1773
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1768
+#: stock/models.py:1779
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1786
+#: stock/models.py:1797
msgid "Test name"
msgstr ""
-#: stock/models.py:1792 templates/js/table_filters.js:226
+#: stock/models.py:1803 templates/js/table_filters.js:226
msgid "Test result"
msgstr ""
-#: stock/models.py:1798
+#: stock/models.py:1809
msgid "Test output value"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1816
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1811
+#: stock/models.py:1822
msgid "Test notes"
msgstr ""
@@ -6682,15 +6686,15 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/forms.js:811 templates/modals.html:21 templates/modals.html:47
+#: templates/js/forms.js:817 templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/forms.js:1178
+#: templates/js/forms.js:1184
msgid "Searching"
msgstr ""
-#: templates/js/forms.js:1331
+#: templates/js/forms.js:1337
msgid "Clear input"
msgstr ""